Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 #if defined(TOOLKIT_GTK) | 7 #if defined(TOOLKIT_GTK) |
| 8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 546 result_code_(content::RESULT_CODE_NORMAL_EXIT), | 546 result_code_(content::RESULT_CODE_NORMAL_EXIT), |
| 547 startup_watcher_(new StartupTimeBomb()), | 547 startup_watcher_(new StartupTimeBomb()), |
| 548 shutdown_watcher_(new ShutdownWatcherHelper()), | 548 shutdown_watcher_(new ShutdownWatcherHelper()), |
| 549 startup_timer_(new performance_monitor::StartupTimer()), | 549 startup_timer_(new performance_monitor::StartupTimer()), |
| 550 browser_field_trials_(parameters.command_line), | 550 browser_field_trials_(parameters.command_line), |
| 551 rvh_callback_(base::Bind(&RenderViewHostCreated)), | 551 rvh_callback_(base::Bind(&RenderViewHostCreated)), |
| 552 translate_manager_(NULL), | 552 translate_manager_(NULL), |
| 553 profile_(NULL), | 553 profile_(NULL), |
| 554 run_message_loop_(true), | 554 run_message_loop_(true), |
| 555 notify_result_(ProcessSingleton::PROCESS_NONE), | 555 notify_result_(ProcessSingleton::PROCESS_NONE), |
| 556 do_first_run_tasks_(false), | 556 is_first_run_(false), |
| 557 local_state_(NULL), | 557 local_state_(NULL), |
| 558 restart_last_session_(false) { | 558 restart_last_session_(false) { |
| 559 // If we're running tests (ui_task is non-null). | 559 // If we're running tests (ui_task is non-null). |
| 560 if (parameters.ui_task) | 560 if (parameters.ui_task) |
| 561 browser_defaults::enable_help_app = false; | 561 browser_defaults::enable_help_app = false; |
| 562 | 562 |
| 563 // Chrome disallows cookies by default. All code paths that want to use | 563 // Chrome disallows cookies by default. All code paths that want to use |
| 564 // cookies need to go through one of Chrome's URLRequestContexts which have | 564 // cookies need to go through one of Chrome's URLRequestContexts which have |
| 565 // a ChromeNetworkDelegate attached that selectively allows cookies again. | 565 // a ChromeNetworkDelegate attached that selectively allows cookies again. |
| 566 if (!disable_enforcing_cookie_policies_for_tests_) | 566 if (!disable_enforcing_cookie_policies_for_tests_) |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 814 | 814 |
| 815 int ChromeBrowserMainParts::PreCreateThreadsImpl() { | 815 int ChromeBrowserMainParts::PreCreateThreadsImpl() { |
| 816 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreadsImpl") | 816 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreadsImpl") |
| 817 run_message_loop_ = false; | 817 run_message_loop_ = false; |
| 818 { | 818 { |
| 819 TRACE_EVENT0("startup", | 819 TRACE_EVENT0("startup", |
| 820 "ChromeBrowserMainParts::PreCreateThreadsImpl:GetUserDataDir"); | 820 "ChromeBrowserMainParts::PreCreateThreadsImpl:GetUserDataDir"); |
| 821 user_data_dir_ = chrome::GetUserDataDir(parameters()); | 821 user_data_dir_ = chrome::GetUserDataDir(parameters()); |
| 822 } | 822 } |
| 823 | 823 |
| 824 // Whether this is First Run. |do_first_run_tasks_| should be prefered to this | |
| 825 // unless the desire is actually to know whether this is really First Run | |
| 826 // (i.e., even if --no-first-run is passed). | |
| 827 bool is_first_run = false; | |
| 828 // Android's first run is done in Java instead of native. | 824 // Android's first run is done in Java instead of native. |
| 829 #if defined(OS_ANDROID) | 825 #if defined(OS_ANDROID) |
| 830 // Force MediaCaptureDevicesDispatcher created on UI thread. | 826 // Force MediaCaptureDevicesDispatcher created on UI thread. |
| 831 MediaCaptureDevicesDispatcher::GetInstance(); | 827 MediaCaptureDevicesDispatcher::GetInstance(); |
| 832 #else | 828 #else |
| 833 process_singleton_.reset(new ChromeProcessSingleton( | 829 process_singleton_.reset(new ChromeProcessSingleton( |
| 834 user_data_dir_, base::Bind(&ProcessSingletonNotificationCallback))); | 830 user_data_dir_, base::Bind(&ProcessSingletonNotificationCallback))); |
| 835 | 831 |
| 836 bool force_first_run = | 832 is_first_run_ = first_run::IsChromeFirstRun(); |
|
gab
2013/07/26 15:41:13
We could in fact completely get rid of is_first_ru
cpu_(ooo_6.6-7.5)
2013/07/27 21:16:31
Yes please. You can have a function local is_first
gab
2013/07/29 17:39:50
Done, indeed IsChromeFirstRun() caches the value.
| |
| 837 parsed_command_line().HasSwitch(switches::kForceFirstRun); | |
| 838 bool force_skip_first_run_tasks = | |
| 839 (!force_first_run && | |
| 840 parsed_command_line().HasSwitch(switches::kNoFirstRun)); | |
| 841 | |
| 842 is_first_run = force_first_run || first_run::IsChromeFirstRun(); | |
| 843 #endif | 833 #endif |
| 844 | 834 |
| 845 scoped_refptr<base::SequencedTaskRunner> local_state_task_runner = | 835 scoped_refptr<base::SequencedTaskRunner> local_state_task_runner = |
| 846 JsonPrefStore::GetTaskRunnerForFile( | 836 JsonPrefStore::GetTaskRunnerForFile( |
| 847 base::FilePath(chrome::kLocalStorePoolName), | 837 base::FilePath(chrome::kLocalStorePoolName), |
| 848 BrowserThread::GetBlockingPool()); | 838 BrowserThread::GetBlockingPool()); |
| 849 | 839 |
| 850 { | 840 { |
| 851 TRACE_EVENT0("startup", | 841 TRACE_EVENT0("startup", |
| 852 "ChromeBrowserMainParts::PreCreateThreadsImpl:InitBrowswerProcessImpl"); | 842 "ChromeBrowserMainParts::PreCreateThreadsImpl:InitBrowswerProcessImpl"); |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 870 tracked_objects::ThreadData::InitializeAndSetTrackingStatus(status); | 860 tracked_objects::ThreadData::InitializeAndSetTrackingStatus(status); |
| 871 } | 861 } |
| 872 | 862 |
| 873 if (parsed_command_line().HasSwitch(switches::kProfilingOutputFile)) { | 863 if (parsed_command_line().HasSwitch(switches::kProfilingOutputFile)) { |
| 874 tracking_objects_.set_output_file_path( | 864 tracking_objects_.set_output_file_path( |
| 875 parsed_command_line().GetSwitchValuePath( | 865 parsed_command_line().GetSwitchValuePath( |
| 876 switches::kProfilingOutputFile)); | 866 switches::kProfilingOutputFile)); |
| 877 } | 867 } |
| 878 | 868 |
| 879 local_state_ = InitializeLocalState( | 869 local_state_ = InitializeLocalState( |
| 880 local_state_task_runner.get(), parsed_command_line(), is_first_run); | 870 local_state_task_runner.get(), parsed_command_line(), is_first_run_); |
| 881 | 871 |
| 882 // These members must be initialized before returning from this function. | 872 // These members must be initialized before returning from this function. |
| 883 master_prefs_.reset(new first_run::MasterPrefs); | 873 master_prefs_.reset(new first_run::MasterPrefs); |
| 884 | 874 |
| 885 #if !defined(OS_ANDROID) | 875 #if !defined(OS_ANDROID) |
| 886 // Android doesn't use StartupBrowserCreator. | 876 // Android doesn't use StartupBrowserCreator. |
| 887 browser_creator_.reset(new StartupBrowserCreator); | 877 browser_creator_.reset(new StartupBrowserCreator); |
| 888 // TODO(yfriedman): Refactor Android to re-use UMABrowsingActivityObserver | 878 // TODO(yfriedman): Refactor Android to re-use UMABrowsingActivityObserver |
| 889 chrome::UMABrowsingActivityObserver::Init(); | 879 chrome::UMABrowsingActivityObserver::Init(); |
| 890 #endif | 880 #endif |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 959 resources_pack_path, ui::SCALE_FACTOR_NONE); | 949 resources_pack_path, ui::SCALE_FACTOR_NONE); |
| 960 } | 950 } |
| 961 #endif // defined(OS_MACOSX) | 951 #endif // defined(OS_MACOSX) |
| 962 } | 952 } |
| 963 | 953 |
| 964 #if defined(TOOLKIT_GTK) | 954 #if defined(TOOLKIT_GTK) |
| 965 g_set_application_name(l10n_util::GetStringUTF8(IDS_PRODUCT_NAME).c_str()); | 955 g_set_application_name(l10n_util::GetStringUTF8(IDS_PRODUCT_NAME).c_str()); |
| 966 #endif | 956 #endif |
| 967 | 957 |
| 968 // Android does first run in Java instead of native. | 958 // Android does first run in Java instead of native. |
| 969 #if !defined(OS_ANDROID) | 959 // Chrome OS has its own out-of-box-experience code. |
| 960 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) | |
|
gab
2013/07/26 15:41:13
This comes from the old (removed in this CL) hidde
cpu_(ooo_6.6-7.5)
2013/07/27 21:16:31
Sure, It more along the lines of other things in t
| |
| 970 // On first run, we need to process the predictor preferences before the | 961 // On first run, we need to process the predictor preferences before the |
| 971 // browser's profile_manager object is created, but after ResourceBundle | 962 // browser's profile_manager object is created, but after ResourceBundle |
| 972 // is initialized. | 963 // is initialized. |
| 973 if (is_first_run) { | 964 if (is_first_run_) { |
| 974 first_run::ProcessMasterPreferencesResult pmp_result = | 965 first_run::ProcessMasterPreferencesResult pmp_result = |
| 975 first_run::ProcessMasterPreferences(user_data_dir_, | 966 first_run::ProcessMasterPreferences(user_data_dir_, |
| 976 master_prefs_.get()); | 967 master_prefs_.get()); |
| 977 if (pmp_result == first_run::EULA_EXIT_NOW) | 968 if (pmp_result == first_run::EULA_EXIT_NOW) |
| 978 return chrome::RESULT_CODE_EULA_REFUSED; | 969 return chrome::RESULT_CODE_EULA_REFUSED; |
| 979 | 970 |
| 980 // Do first run tasks unless: | 971 if (!parsed_command_line().HasSwitch(switches::kApp) && |
| 981 // - Explicitly forced not to by |force_skip_first_run_tasks| or | |
| 982 // |pmp_result|. | |
| 983 // - Running in App (or App Launcher) mode, where showing the importer | |
| 984 // (first run) UI is undesired. | |
| 985 do_first_run_tasks_ = ( | |
| 986 !force_skip_first_run_tasks && | |
| 987 pmp_result != first_run::SKIP_FIRST_RUN_TASKS && | |
| 988 !parsed_command_line().HasSwitch(switches::kApp) && | |
|
gab
2013/07/26 15:41:13
We would previously set do_first_run_tasks_ to fal
cpu_(ooo_6.6-7.5)
2013/07/27 21:16:31
In general I agree, but you should fire an email t
gab
2013/07/29 17:39:50
[cc'ing benwells here]
Right, so AFAIK this has b
gab
2013/07/29 22:22:29
Here https://codereview.chromium.org/21150006/ :)!
| |
| 989 !parsed_command_line().HasSwitch(switches::kAppId) && | 972 !parsed_command_line().HasSwitch(switches::kAppId) && |
| 990 !parsed_command_line().HasSwitch(switches::kShowAppList)); | 973 !parsed_command_line().HasSwitch(switches::kShowAppList)) { |
| 991 | |
| 992 if (do_first_run_tasks_) { | |
| 993 AddFirstRunNewTabs(browser_creator_.get(), master_prefs_->new_tabs); | 974 AddFirstRunNewTabs(browser_creator_.get(), master_prefs_->new_tabs); |
| 994 | |
| 995 // TODO(macourteau): refactor preferences that are copied from | |
| 996 // master_preferences into local_state, as a "local_state" section in | |
| 997 // master preferences. If possible, a generic solution would be prefered | |
| 998 // over a copy one-by-one of specific preferences. Also see related TODO | |
| 999 // in first_run.h. | |
| 1000 | |
| 1001 // Store the initial VariationsService seed in local state, if it exists | |
| 1002 // in master prefs. | |
| 1003 if (!master_prefs_->variations_seed.empty()) { | |
| 1004 local_state_->SetString(prefs::kVariationsSeed, | |
| 1005 master_prefs_->variations_seed); | |
| 1006 // Set the variation seed date to the current system time. If the user's | |
| 1007 // clock is incorrect, this may cause some field trial expiry checks to | |
| 1008 // not do the right thing until the next seed update from the server, | |
| 1009 // when this value will be updated. | |
| 1010 local_state_->SetInt64(prefs::kVariationsSeedDate, | |
| 1011 base::Time::Now().ToInternalValue()); | |
| 1012 } | |
| 1013 | |
| 1014 if (!master_prefs_->suppress_default_browser_prompt_for_version.empty()) { | |
| 1015 local_state_->SetString( | |
| 1016 prefs::kBrowserSuppressDefaultBrowserPrompt, | |
| 1017 master_prefs_->suppress_default_browser_prompt_for_version); | |
| 1018 } | |
| 1019 | |
| 1020 AppListService::Get()->HandleFirstRun(); | |
| 1021 } | 975 } |
| 1022 | 976 |
| 1023 if (do_first_run_tasks_ || | 977 // TODO(macourteau): refactor preferences that are copied from |
| 1024 parsed_command_line().HasSwitch(switches::kNoFirstRun)) { | 978 // master_preferences into local_state, as a "local_state" section in |
|
cpu_(ooo_6.6-7.5)
2013/07/27 21:16:31
btw, I pinged him on his 3 bugs (130598, 180304, 2
| |
| 1025 // Create the First Run sentinel whether first run tasks are executed | 979 // master preferences. If possible, a generic solution would be prefered |
| 1026 // or not. | 980 // over a copy one-by-one of specific preferences. Also see related TODO |
| 1027 first_run::CreateSentinel(); | 981 // in first_run.h. |
|
gab
2013/07/26 15:41:13
Now handled inside first_run::IsChromeFirstRun();
| |
| 982 | |
| 983 // Store the initial VariationsService seed in local state, if it exists | |
| 984 // in master prefs. | |
| 985 if (!master_prefs_->variations_seed.empty()) { | |
| 986 local_state_->SetString(prefs::kVariationsSeed, | |
| 987 master_prefs_->variations_seed); | |
| 988 // Set the variation seed date to the current system time. If the user's | |
| 989 // clock is incorrect, this may cause some field trial expiry checks to | |
| 990 // not do the right thing until the next seed update from the server, | |
| 991 // when this value will be updated. | |
| 992 local_state_->SetInt64(prefs::kVariationsSeedDate, | |
| 993 base::Time::Now().ToInternalValue()); | |
| 1028 } | 994 } |
| 995 | |
| 996 if (!master_prefs_->suppress_default_browser_prompt_for_version.empty()) { | |
| 997 local_state_->SetString( | |
| 998 prefs::kBrowserSuppressDefaultBrowserPrompt, | |
| 999 master_prefs_->suppress_default_browser_prompt_for_version); | |
| 1000 } | |
| 1001 | |
| 1002 AppListService::Get()->HandleFirstRun(); | |
| 1029 } | 1003 } |
| 1030 #endif | 1004 #endif |
| 1031 | 1005 |
| 1032 #if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_MACOSX) | 1006 #if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_MACOSX) |
| 1033 // Set the product channel for crash reports. | 1007 // Set the product channel for crash reports. |
| 1034 child_process_logging::SetChannel( | 1008 child_process_logging::SetChannel( |
| 1035 chrome::VersionInfo::GetVersionStringModifier()); | 1009 chrome::VersionInfo::GetVersionStringModifier()); |
| 1036 #endif | 1010 #endif |
| 1037 | 1011 |
| 1038 // Initialize tracking synchronizer system. | 1012 // Initialize tracking synchronizer system. |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1350 PostProfileInit(); | 1324 PostProfileInit(); |
| 1351 | 1325 |
| 1352 // Retrieve cached GL strings from local state and use them for GPU | 1326 // Retrieve cached GL strings from local state and use them for GPU |
| 1353 // blacklist decisions. | 1327 // blacklist decisions. |
| 1354 if (g_browser_process->gl_string_manager()) | 1328 if (g_browser_process->gl_string_manager()) |
| 1355 g_browser_process->gl_string_manager()->Initialize(); | 1329 g_browser_process->gl_string_manager()->Initialize(); |
| 1356 | 1330 |
| 1357 // Create an instance of GpuModeManager to watch gpu mode pref change. | 1331 // Create an instance of GpuModeManager to watch gpu mode pref change. |
| 1358 g_browser_process->gpu_mode_manager(); | 1332 g_browser_process->gpu_mode_manager(); |
| 1359 | 1333 |
| 1360 #if !defined(OS_ANDROID) | 1334 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) |
| 1361 // Show the First Run UI if this is the first time Chrome has been run on | 1335 // Show the First Run UI if this is the first time Chrome has been run on |
| 1362 // this computer, or we're being compelled to do so by a command line flag. | 1336 // this computer, or we're being compelled to do so by a command line flag. |
| 1363 // Note that this be done _after_ the PrefService is initialized and all | 1337 // Note that this be done _after_ the PrefService is initialized and all |
| 1364 // preferences are registered, since some of the code that the importer | 1338 // preferences are registered, since some of the code that the importer |
| 1365 // touches reads preferences. | 1339 // touches reads preferences. |
| 1366 if (do_first_run_tasks_) { | 1340 if (is_first_run_) { |
| 1367 first_run::AutoImport(profile_, | 1341 first_run::AutoImport(profile_, |
| 1368 master_prefs_->homepage_defined, | 1342 master_prefs_->homepage_defined, |
| 1369 master_prefs_->do_import_items, | 1343 master_prefs_->do_import_items, |
| 1370 master_prefs_->dont_import_items, | 1344 master_prefs_->dont_import_items, |
| 1371 master_prefs_->import_bookmarks_path); | 1345 master_prefs_->import_bookmarks_path); |
| 1372 | 1346 |
| 1373 // Note: this can pop the first run consent dialog on linux. | 1347 // Note: this can pop the first run consent dialog on linux. |
| 1374 first_run::DoPostImportTasks(profile_, master_prefs_->make_chrome_default); | 1348 first_run::DoPostImportTasks(profile_, master_prefs_->make_chrome_default); |
| 1375 | 1349 |
| 1376 if (!master_prefs_->suppress_first_run_default_browser_prompt) { | 1350 if (!master_prefs_->suppress_first_run_default_browser_prompt) { |
| 1377 browser_creator_->set_show_main_browser_window( | 1351 browser_creator_->set_show_main_browser_window( |
| 1378 !chrome::ShowFirstRunDefaultBrowserPrompt(profile_)); | 1352 !chrome::ShowFirstRunDefaultBrowserPrompt(profile_)); |
| 1379 } else { | 1353 } else { |
| 1380 browser_creator_->set_is_default_browser_dialog_suppressed(true); | 1354 browser_creator_->set_is_default_browser_dialog_suppressed(true); |
| 1381 } | 1355 } |
| 1382 } // if (do_first_run_tasks_) | 1356 } // if (is_first_run_) |
| 1383 #endif // !defined(OS_ANDROID) | 1357 #endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS) |
| 1384 | 1358 |
| 1385 #if defined(OS_WIN) | 1359 #if defined(OS_WIN) |
| 1386 // Sets things up so that if we crash from this point on, a dialog will | 1360 // Sets things up so that if we crash from this point on, a dialog will |
| 1387 // popup asking the user to restart chrome. It is done this late to avoid | 1361 // popup asking the user to restart chrome. It is done this late to avoid |
| 1388 // testing against a bunch of special cases that are taken care early on. | 1362 // testing against a bunch of special cases that are taken care early on. |
| 1389 ChromeBrowserMainPartsWin::PrepareRestartOnCrashEnviroment( | 1363 ChromeBrowserMainPartsWin::PrepareRestartOnCrashEnviroment( |
| 1390 parsed_command_line()); | 1364 parsed_command_line()); |
| 1391 | 1365 |
| 1392 // Registers Chrome with the Windows Restart Manager, which will restore the | 1366 // Registers Chrome with the Windows Restart Manager, which will restore the |
| 1393 // Chrome session when the computer is restarted after a system update. | 1367 // Chrome session when the computer is restarted after a system update. |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 1406 base::Bind(&NetworkProfileBubble::CheckNetworkProfile, | 1380 base::Bind(&NetworkProfileBubble::CheckNetworkProfile, |
| 1407 profile_->GetPath())); | 1381 profile_->GetPath())); |
| 1408 } | 1382 } |
| 1409 #endif // OS_WIN | 1383 #endif // OS_WIN |
| 1410 | 1384 |
| 1411 #if defined(ENABLE_RLZ) && !defined(OS_CHROMEOS) | 1385 #if defined(ENABLE_RLZ) && !defined(OS_CHROMEOS) |
| 1412 // Init the RLZ library. This just binds the dll and schedules a task on the | 1386 // Init the RLZ library. This just binds the dll and schedules a task on the |
| 1413 // file thread to be run sometime later. If this is the first run we record | 1387 // file thread to be run sometime later. If this is the first run we record |
| 1414 // the installation event. | 1388 // the installation event. |
| 1415 PrefService* pref_service = profile_->GetPrefs(); | 1389 PrefService* pref_service = profile_->GetPrefs(); |
| 1416 int ping_delay = do_first_run_tasks_ ? master_prefs_->ping_delay : | 1390 int ping_delay = is_first_run_ ? master_prefs_->ping_delay : |
| 1417 pref_service->GetInteger(first_run::GetPingDelayPrefName().c_str()); | 1391 pref_service->GetInteger(first_run::GetPingDelayPrefName().c_str()); |
| 1418 // Negative ping delay means to send ping immediately after a first search is | 1392 // Negative ping delay means to send ping immediately after a first search is |
| 1419 // recorded. | 1393 // recorded. |
| 1420 RLZTracker::InitRlzFromProfileDelayed( | 1394 RLZTracker::InitRlzFromProfileDelayed( |
| 1421 profile_, do_first_run_tasks_, ping_delay < 0, | 1395 profile_, is_first_run_, ping_delay < 0, |
| 1422 base::TimeDelta::FromMilliseconds(abs(ping_delay))); | 1396 base::TimeDelta::FromMilliseconds(abs(ping_delay))); |
| 1423 #endif // defined(ENABLE_RLZ) && !defined(OS_CHROMEOS) | 1397 #endif // defined(ENABLE_RLZ) && !defined(OS_CHROMEOS) |
| 1424 | 1398 |
| 1425 // Configure modules that need access to resources. | 1399 // Configure modules that need access to resources. |
| 1426 net::NetModule::SetResourceProvider(chrome_common_net::NetResourceProvider); | 1400 net::NetModule::SetResourceProvider(chrome_common_net::NetResourceProvider); |
| 1427 | 1401 |
| 1428 // In unittest mode, this will do nothing. In normal mode, this will create | 1402 // In unittest mode, this will do nothing. In normal mode, this will create |
| 1429 // the global IntranetRedirectDetector instance, which will promptly go to | 1403 // the global IntranetRedirectDetector instance, which will promptly go to |
| 1430 // sleep for seven seconds (to avoid slowing startup), and wake up afterwards | 1404 // sleep for seven seconds (to avoid slowing startup), and wake up afterwards |
| 1431 // to see if it should do anything else. | 1405 // to see if it should do anything else. |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1634 return true; | 1608 return true; |
| 1635 #else | 1609 #else |
| 1636 // Set the result code set in PreMainMessageLoopRun or set above. | 1610 // Set the result code set in PreMainMessageLoopRun or set above. |
| 1637 *result_code = result_code_; | 1611 *result_code = result_code_; |
| 1638 if (!run_message_loop_) | 1612 if (!run_message_loop_) |
| 1639 return true; // Don't run the default message loop. | 1613 return true; // Don't run the default message loop. |
| 1640 | 1614 |
| 1641 // These should be invoked as close to the start of the browser's | 1615 // These should be invoked as close to the start of the browser's |
| 1642 // UI thread message loop as possible to get a stable measurement | 1616 // UI thread message loop as possible to get a stable measurement |
| 1643 // across versions. | 1617 // across versions. |
| 1644 RecordBrowserStartupTime(do_first_run_tasks_); | 1618 RecordBrowserStartupTime(is_first_run_); |
| 1645 startup_timer_->SignalStartupComplete( | 1619 startup_timer_->SignalStartupComplete( |
| 1646 performance_monitor::StartupTimer::STARTUP_NORMAL); | 1620 performance_monitor::StartupTimer::STARTUP_NORMAL); |
| 1647 | 1621 |
| 1648 DCHECK_EQ(base::MessageLoop::TYPE_UI, base::MessageLoop::current()->type()); | 1622 DCHECK_EQ(base::MessageLoop::TYPE_UI, base::MessageLoop::current()->type()); |
| 1649 #if !defined(USE_AURA) && defined(TOOLKIT_VIEWS) | 1623 #if !defined(USE_AURA) && defined(TOOLKIT_VIEWS) |
| 1650 views::AcceleratorHandler accelerator_handler; | 1624 views::AcceleratorHandler accelerator_handler; |
| 1651 base::RunLoop run_loop(&accelerator_handler); | 1625 base::RunLoop run_loop(&accelerator_handler); |
| 1652 #else | 1626 #else |
| 1653 base::RunLoop run_loop; | 1627 base::RunLoop run_loop; |
| 1654 #endif | 1628 #endif |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1726 chromeos::CrosSettings::Shutdown(); | 1700 chromeos::CrosSettings::Shutdown(); |
| 1727 #endif | 1701 #endif |
| 1728 #endif | 1702 #endif |
| 1729 } | 1703 } |
| 1730 | 1704 |
| 1731 // Public members: | 1705 // Public members: |
| 1732 | 1706 |
| 1733 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { | 1707 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { |
| 1734 chrome_extra_parts_.push_back(parts); | 1708 chrome_extra_parts_.push_back(parts); |
| 1735 } | 1709 } |
| OLD | NEW |