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 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
144 #include "net/cookies/cookie_monster.h" | 144 #include "net/cookies/cookie_monster.h" |
145 #include "net/http/http_network_layer.h" | 145 #include "net/http/http_network_layer.h" |
146 #include "net/http/http_stream_factory.h" | 146 #include "net/http/http_stream_factory.h" |
147 #include "net/url_request/url_request.h" | 147 #include "net/url_request/url_request.h" |
148 #include "ui/base/l10n/l10n_util.h" | 148 #include "ui/base/l10n/l10n_util.h" |
149 #include "ui/base/layout.h" | 149 #include "ui/base/layout.h" |
150 #include "ui/base/resource/resource_bundle.h" | 150 #include "ui/base/resource/resource_bundle.h" |
151 #include "ui/strings/grit/app_locale_settings.h" | 151 #include "ui/strings/grit/app_locale_settings.h" |
152 | 152 |
153 #if defined(OS_ANDROID) | 153 #if defined(OS_ANDROID) |
154 #include "ui/base/resource/resource_bundle_android.h" | |
155 #endif // defined(OS_ANDROID) | |
156 | |
157 // TODO(bshe): Use defined(ANDROID_JAVA_UI) once | |
158 // codereview.chromium.org/1459793002 landed. | |
159 #if defined(OS_ANDROID) && !defined(USE_AURA) | |
154 #include "chrome/browser/android/dev_tools_discovery_provider_android.h" | 160 #include "chrome/browser/android/dev_tools_discovery_provider_android.h" |
155 #include "chrome/browser/metrics/thread_watcher_android.h" | 161 #include "chrome/browser/metrics/thread_watcher_android.h" |
156 #include "ui/base/resource/resource_bundle_android.h" | |
157 #else | 162 #else |
158 #include "chrome/browser/devtools/chrome_devtools_discovery_provider.h" | 163 #include "chrome/browser/devtools/chrome_devtools_discovery_provider.h" |
159 #include "chrome/browser/feedback/feedback_profile_observer.h" | 164 #include "chrome/browser/feedback/feedback_profile_observer.h" |
160 #endif // defined(OS_ANDROID) | 165 #endif // defined(OS_ANDROID) && !defined(USE_AURA) |
161 | 166 |
162 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 167 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
163 #include "chrome/browser/first_run/upgrade_util_linux.h" | 168 #include "chrome/browser/first_run/upgrade_util_linux.h" |
164 #include "chrome/browser/sxs_linux.h" | 169 #include "chrome/browser/sxs_linux.h" |
165 #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS) | 170 #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS) |
166 | 171 |
167 #if defined(OS_CHROMEOS) | 172 #if defined(OS_CHROMEOS) |
168 #include "chrome/browser/chromeos/settings/cros_settings.h" | 173 #include "chrome/browser/chromeos/settings/cros_settings.h" |
169 #include "chromeos/chromeos_switches.h" | 174 #include "chromeos/chromeos_switches.h" |
170 #include "chromeos/settings/cros_settings_names.h" | 175 #include "chromeos/settings/cros_settings_names.h" |
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
750 // Don't record any metrics if UI was displayed before this point e.g. | 755 // Don't record any metrics if UI was displayed before this point e.g. |
751 // warning dialogs. | 756 // warning dialogs. |
752 if (startup_metric_utils::WasNonBrowserUIDisplayed()) | 757 if (startup_metric_utils::WasNonBrowserUIDisplayed()) |
753 return; | 758 return; |
754 | 759 |
755 bool is_first_run = false; | 760 bool is_first_run = false; |
756 #if !defined(OS_ANDROID) | 761 #if !defined(OS_ANDROID) |
757 // On Android, first run is handled in Java code, and the C++ side of Chrome | 762 // On Android, first run is handled in Java code, and the C++ side of Chrome |
758 // doesn't know if this is the first run. This will cause some inaccuracy in | 763 // doesn't know if this is the first run. This will cause some inaccuracy in |
759 // the UMA statistics, but this should be minor (first runs are rare). | 764 // the UMA statistics, but this should be minor (first runs are rare). |
765 // TODO(bshe): Figure out which first run code to use for Aura Android. See | |
766 // crbug.com/560498 | |
760 is_first_run = first_run::IsChromeFirstRun(); | 767 is_first_run = first_run::IsChromeFirstRun(); |
761 #endif // defined(OS_ANDROID) | 768 #endif // defined(OS_ANDROID) |
762 | 769 |
763 // Record collected startup metrics. | 770 // Record collected startup metrics. |
764 startup_metric_utils::RecordBrowserMainMessageLoopStart( | 771 startup_metric_utils::RecordBrowserMainMessageLoopStart( |
765 base::TimeTicks::Now(), is_first_run); | 772 base::TimeTicks::Now(), is_first_run); |
766 } | 773 } |
767 | 774 |
768 // ----------------------------------------------------------------------------- | 775 // ----------------------------------------------------------------------------- |
769 // TODO(viettrungluu): move more/rest of BrowserMain() into BrowserMainParts. | 776 // TODO(viettrungluu): move more/rest of BrowserMain() into BrowserMainParts. |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
823 | 830 |
824 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) | 831 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) |
825 chrome_extra_parts_[i]->PostMainMessageLoopStart(); | 832 chrome_extra_parts_[i]->PostMainMessageLoopStart(); |
826 } | 833 } |
827 | 834 |
828 int ChromeBrowserMainParts::PreCreateThreads() { | 835 int ChromeBrowserMainParts::PreCreateThreads() { |
829 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreads"); | 836 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreads"); |
830 result_code_ = PreCreateThreadsImpl(); | 837 result_code_ = PreCreateThreadsImpl(); |
831 | 838 |
832 if (result_code_ == content::RESULT_CODE_NORMAL_EXIT) { | 839 if (result_code_ == content::RESULT_CODE_NORMAL_EXIT) { |
833 #if !defined(OS_ANDROID) | 840 // TODO(bshe): Use !defined(ANDROID_JAVA_UI) once |
841 // codereview.chromium.org/1459793002 landed. | |
842 #if !defined(OS_ANDROID) || defined(USE_AURA) | |
834 // These members must be initialized before exiting this function normally. | 843 // These members must be initialized before exiting this function normally. |
835 DCHECK(master_prefs_.get()); | 844 DCHECK(master_prefs_.get()); |
836 DCHECK(browser_creator_.get()); | 845 DCHECK(browser_creator_.get()); |
837 #endif // !defined(OS_ANDROID) | 846 #endif // !defined(OS_ANDROID) || defined(USE_AURA) |
838 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) | 847 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) |
839 chrome_extra_parts_[i]->PreCreateThreads(); | 848 chrome_extra_parts_[i]->PreCreateThreads(); |
840 } | 849 } |
841 | 850 |
842 return result_code_; | 851 return result_code_; |
843 } | 852 } |
844 | 853 |
845 int ChromeBrowserMainParts::PreCreateThreadsImpl() { | 854 int ChromeBrowserMainParts::PreCreateThreadsImpl() { |
846 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreadsImpl") | 855 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreadsImpl") |
847 run_message_loop_ = false; | 856 run_message_loop_ = false; |
848 #if !defined(OS_ANDROID) | 857 #if !defined(OS_ANDROID) |
849 chrome::MaybeShowInvalidUserDataDirWarningDialog(); | 858 chrome::MaybeShowInvalidUserDataDirWarningDialog(); |
850 #endif // !defined(OS_ANDROID) | 859 #endif // !defined(OS_ANDROID) |
851 if (!PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)) | 860 if (!PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)) |
852 return chrome::RESULT_CODE_MISSING_DATA; | 861 return chrome::RESULT_CODE_MISSING_DATA; |
853 | 862 |
854 // Force MediaCaptureDevicesDispatcher to be created on UI thread. | 863 // Force MediaCaptureDevicesDispatcher to be created on UI thread. |
855 MediaCaptureDevicesDispatcher::GetInstance(); | 864 MediaCaptureDevicesDispatcher::GetInstance(); |
856 | 865 |
857 // Android's first run is done in Java instead of native. | 866 // Android's first run is done in Java instead of native. |
867 // TODO(bshe): Figure out which first run code to use for Aura Android. See | |
868 // crbug.com/560498 | |
858 #if !defined(OS_ANDROID) | 869 #if !defined(OS_ANDROID) |
859 process_singleton_.reset(new ChromeProcessSingleton( | 870 process_singleton_.reset(new ChromeProcessSingleton( |
860 user_data_dir_, base::Bind(&ProcessSingletonNotificationCallback))); | 871 user_data_dir_, base::Bind(&ProcessSingletonNotificationCallback))); |
861 | 872 |
862 // Cache first run state early. | 873 // Cache first run state early. |
863 first_run::IsChromeFirstRun(); | 874 first_run::IsChromeFirstRun(); |
864 #endif // !defined(OS_ANDROID) | 875 #endif // !defined(OS_ANDROID) |
865 | 876 |
866 scoped_refptr<base::SequencedTaskRunner> local_state_task_runner = | 877 scoped_refptr<base::SequencedTaskRunner> local_state_task_runner = |
867 JsonPrefStore::GetTaskRunnerForFile( | 878 JsonPrefStore::GetTaskRunnerForFile( |
(...skipping 17 matching lines...) Expand all Loading... | |
885 tracked_objects::ThreadData::Status status = | 896 tracked_objects::ThreadData::Status status = |
886 tracked_objects::ThreadData::PROFILING_ACTIVE; | 897 tracked_objects::ThreadData::PROFILING_ACTIVE; |
887 if (flag.compare("0") != 0) | 898 if (flag.compare("0") != 0) |
888 status = tracked_objects::ThreadData::DEACTIVATED; | 899 status = tracked_objects::ThreadData::DEACTIVATED; |
889 tracked_objects::ThreadData::InitializeAndSetTrackingStatus(status); | 900 tracked_objects::ThreadData::InitializeAndSetTrackingStatus(status); |
890 } | 901 } |
891 | 902 |
892 local_state_ = InitializeLocalState( | 903 local_state_ = InitializeLocalState( |
893 local_state_task_runner.get(), parsed_command_line()); | 904 local_state_task_runner.get(), parsed_command_line()); |
894 | 905 |
895 #if !defined(OS_ANDROID) | 906 // TODO(bshe): Use !defined(ANDROID_JAVA_UI) once |
907 // codereview.chromium.org/1459793002 landed. | |
908 #if !defined(OS_ANDROID) || defined(USE_AURA) | |
896 // These members must be initialized before returning from this function. | 909 // These members must be initialized before returning from this function. |
897 master_prefs_.reset(new first_run::MasterPrefs); | 910 master_prefs_.reset(new first_run::MasterPrefs); |
898 // Android doesn't use StartupBrowserCreator. | 911 // Android doesn't use StartupBrowserCreator. |
899 browser_creator_.reset(new StartupBrowserCreator); | 912 browser_creator_.reset(new StartupBrowserCreator); |
900 // TODO(yfriedman): Refactor Android to re-use UMABrowsingActivityObserver | 913 // TODO(yfriedman): Refactor Android to re-use UMABrowsingActivityObserver |
901 chrome::UMABrowsingActivityObserver::Init(); | 914 chrome::UMABrowsingActivityObserver::Init(); |
902 #endif // !defined(OS_ANDROID) | 915 #endif // !defined(OS_ANDROID) || defined(USE_AURA) |
903 | 916 |
904 #if !defined(OS_CHROMEOS) | 917 #if !defined(OS_CHROMEOS) |
905 // Convert active labs into switches. This needs to be done before | 918 // Convert active labs into switches. This needs to be done before |
906 // ResourceBundle::InitSharedInstanceWithLocale as some loaded resources are | 919 // ResourceBundle::InitSharedInstanceWithLocale as some loaded resources are |
907 // affected by experiment flags (--touch-optimized-ui in particular). | 920 // affected by experiment flags (--touch-optimized-ui in particular). |
908 // On ChromeOS system level flags are applied from the device settings from | 921 // On ChromeOS system level flags are applied from the device settings from |
909 // the session manager. | 922 // the session manager. |
910 { | 923 { |
911 TRACE_EVENT0("startup", | 924 TRACE_EVENT0("startup", |
912 "ChromeBrowserMainParts::PreCreateThreadsImpl:ConvertFlags"); | 925 "ChromeBrowserMainParts::PreCreateThreadsImpl:ConvertFlags"); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
967 } | 980 } |
968 CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale; | 981 CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale; |
969 browser_process_->SetApplicationLocale(loaded_locale); | 982 browser_process_->SetApplicationLocale(loaded_locale); |
970 | 983 |
971 { | 984 { |
972 TRACE_EVENT0("startup", | 985 TRACE_EVENT0("startup", |
973 "ChromeBrowserMainParts::PreCreateThreadsImpl:AddDataPack"); | 986 "ChromeBrowserMainParts::PreCreateThreadsImpl:AddDataPack"); |
974 base::FilePath resources_pack_path; | 987 base::FilePath resources_pack_path; |
975 PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path); | 988 PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path); |
976 #if defined(OS_ANDROID) | 989 #if defined(OS_ANDROID) |
990 // Uses Android resources even without ANDROID_JAVA_UI. | |
977 ui::LoadMainAndroidPackFile("assets/resources.pak", resources_pack_path); | 991 ui::LoadMainAndroidPackFile("assets/resources.pak", resources_pack_path); |
978 #else | 992 #else |
979 ResourceBundle::GetSharedInstance().AddDataPackFromPath( | 993 ResourceBundle::GetSharedInstance().AddDataPackFromPath( |
980 resources_pack_path, ui::SCALE_FACTOR_NONE); | 994 resources_pack_path, ui::SCALE_FACTOR_NONE); |
981 #endif // defined(OS_ANDROID) | 995 #endif // defined(OS_ANDROID) |
982 } | 996 } |
983 #endif // defined(OS_MACOSX) | 997 #endif // defined(OS_MACOSX) |
984 | 998 |
985 // Android does first run in Java instead of native. | 999 // Android does first run in Java instead of native. |
986 // Chrome OS has its own out-of-box-experience code. | 1000 // Chrome OS has its own out-of-box-experience code. |
1001 // TODO(bshe): Figure out which first run code to use for Aura Android. See | |
1002 // crbug.com/560498 | |
987 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) | 1003 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) |
988 // On first run, we need to process the predictor preferences before the | 1004 // On first run, we need to process the predictor preferences before the |
989 // browser's profile_manager object is created, but after ResourceBundle | 1005 // browser's profile_manager object is created, but after ResourceBundle |
990 // is initialized. | 1006 // is initialized. |
991 if (first_run::IsChromeFirstRun()) { | 1007 if (first_run::IsChromeFirstRun()) { |
992 first_run::ProcessMasterPreferencesResult pmp_result = | 1008 first_run::ProcessMasterPreferencesResult pmp_result = |
993 first_run::ProcessMasterPreferences(user_data_dir_, | 1009 first_run::ProcessMasterPreferences(user_data_dir_, |
994 master_prefs_.get()); | 1010 master_prefs_.get()); |
995 if (pmp_result == first_run::EULA_EXIT_NOW) | 1011 if (pmp_result == first_run::EULA_EXIT_NOW) |
996 return chrome::RESULT_CODE_EULA_REFUSED; | 1012 return chrome::RESULT_CODE_EULA_REFUSED; |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1124 #endif // defined(ENABLE_EXTENSIONS) | 1140 #endif // defined(ENABLE_EXTENSIONS) |
1125 | 1141 |
1126 #if !defined(OS_IOS) | 1142 #if !defined(OS_IOS) |
1127 InstallChromeJavaScriptNativeDialogFactory(); | 1143 InstallChromeJavaScriptNativeDialogFactory(); |
1128 #endif // !defined(OS_IOS) | 1144 #endif // !defined(OS_IOS) |
1129 } | 1145 } |
1130 | 1146 |
1131 void ChromeBrowserMainParts::PostProfileInit() { | 1147 void ChromeBrowserMainParts::PostProfileInit() { |
1132 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PostProfileInit"); | 1148 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PostProfileInit"); |
1133 | 1149 |
1134 #if defined(OS_ANDROID) | 1150 // TODO(bshe): Use defined(ANDROID_JAVA_UI) once |
1151 // codereview.chromium.org/1459793002 landed. | |
1152 #if defined(OS_ANDROID) && !defined(USE_AURA) | |
1135 DevToolsDiscoveryProviderAndroid::Install(); | 1153 DevToolsDiscoveryProviderAndroid::Install(); |
1136 #else | 1154 #else |
1137 ChromeDevToolsDiscoveryProvider::Install(); | 1155 ChromeDevToolsDiscoveryProvider::Install(); |
1138 #endif // defined(OS_ANDROID) | 1156 #endif // defined(OS_ANDROID) && !defined(USE_AURA) |
1139 | 1157 |
1140 LaunchDevToolsHandlerIfNeeded(parsed_command_line()); | 1158 LaunchDevToolsHandlerIfNeeded(parsed_command_line()); |
1141 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) | 1159 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) |
1142 chrome_extra_parts_[i]->PostProfileInit(); | 1160 chrome_extra_parts_[i]->PostProfileInit(); |
1143 } | 1161 } |
1144 | 1162 |
1145 void ChromeBrowserMainParts::PreBrowserStart() { | 1163 void ChromeBrowserMainParts::PreBrowserStart() { |
1146 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreBrowserStart"); | 1164 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreBrowserStart"); |
1147 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) | 1165 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) |
1148 chrome_extra_parts_[i]->PreBrowserStart(); | 1166 chrome_extra_parts_[i]->PreBrowserStart(); |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1410 base::TimeTicks::Now() - start_time_step1); | 1428 base::TimeTicks::Now() - start_time_step1); |
1411 | 1429 |
1412 // This step is costly and is already measured in Startup.CreateFirstProfile | 1430 // This step is costly and is already measured in Startup.CreateFirstProfile |
1413 // and more directly Profile.CreateAndInitializeProfile. | 1431 // and more directly Profile.CreateAndInitializeProfile. |
1414 profile_ = CreatePrimaryProfile(parameters(), | 1432 profile_ = CreatePrimaryProfile(parameters(), |
1415 user_data_dir_, | 1433 user_data_dir_, |
1416 parsed_command_line()); | 1434 parsed_command_line()); |
1417 if (!profile_) | 1435 if (!profile_) |
1418 return content::RESULT_CODE_NORMAL_EXIT; | 1436 return content::RESULT_CODE_NORMAL_EXIT; |
1419 | 1437 |
1420 #if !defined(OS_ANDROID) | 1438 // TODO(bshe): Use !defined(ANDROID_JAVA_UI) once |
1439 // codereview.chromium.org/1459793002 landed. | |
1440 #if !defined(OS_ANDROID) || defined(USE_AURA) | |
1421 const base::TimeTicks start_time_step2 = base::TimeTicks::Now(); | 1441 const base::TimeTicks start_time_step2 = base::TimeTicks::Now(); |
1422 // The first run sentinel must be created after the process singleton was | 1442 // The first run sentinel must be created after the process singleton was |
1423 // grabbed and no early return paths were otherwise hit above. | 1443 // grabbed and no early return paths were otherwise hit above. |
1424 first_run::CreateSentinelIfNeeded(); | 1444 first_run::CreateSentinelIfNeeded(); |
1425 #endif // !defined(OS_ANDROID) | 1445 #endif // !defined(OS_ANDROID) || defined(USE_AURA) |
1426 | 1446 |
1427 #if defined(ENABLE_BACKGROUND) | 1447 #if defined(ENABLE_BACKGROUND) |
1428 // Autoload any profiles which are running background apps. | 1448 // Autoload any profiles which are running background apps. |
1429 // TODO(rlp): Do this on a separate thread. See http://crbug.com/99075. | 1449 // TODO(rlp): Do this on a separate thread. See http://crbug.com/99075. |
1430 browser_process_->profile_manager()->AutoloadProfiles(); | 1450 browser_process_->profile_manager()->AutoloadProfiles(); |
1431 #endif // defined(ENABLE_BACKGROUND) | 1451 #endif // defined(ENABLE_BACKGROUND) |
1432 // Post-profile init --------------------------------------------------------- | 1452 // Post-profile init --------------------------------------------------------- |
1433 | 1453 |
1434 TranslateService::Initialize(); | 1454 TranslateService::Initialize(); |
1435 | 1455 |
(...skipping 21 matching lines...) Expand all Loading... | |
1457 | 1477 |
1458 // Create an instance of GpuModeManager to watch gpu mode pref change. | 1478 // Create an instance of GpuModeManager to watch gpu mode pref change. |
1459 g_browser_process->gpu_mode_manager(); | 1479 g_browser_process->gpu_mode_manager(); |
1460 | 1480 |
1461 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) | 1481 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) |
1462 // Show the First Run UI if this is the first time Chrome has been run on | 1482 // Show the First Run UI if this is the first time Chrome has been run on |
1463 // this computer, or we're being compelled to do so by a command line flag. | 1483 // this computer, or we're being compelled to do so by a command line flag. |
1464 // Note that this be done _after_ the PrefService is initialized and all | 1484 // Note that this be done _after_ the PrefService is initialized and all |
1465 // preferences are registered, since some of the code that the importer | 1485 // preferences are registered, since some of the code that the importer |
1466 // touches reads preferences. | 1486 // touches reads preferences. |
1487 // TODO(bshe): Figure out which first run code to use for Aura Android. See | |
1488 // crbug.com/560498 | |
1467 if (first_run::IsChromeFirstRun()) { | 1489 if (first_run::IsChromeFirstRun()) { |
1468 first_run::AutoImport(profile_, | 1490 first_run::AutoImport(profile_, |
1469 master_prefs_->homepage_defined, | 1491 master_prefs_->homepage_defined, |
1470 master_prefs_->do_import_items, | 1492 master_prefs_->do_import_items, |
1471 master_prefs_->dont_import_items, | 1493 master_prefs_->dont_import_items, |
1472 master_prefs_->import_bookmarks_path); | 1494 master_prefs_->import_bookmarks_path); |
1473 | 1495 |
1474 // Note: this can pop the first run consent dialog on linux. | 1496 // Note: this can pop the first run consent dialog on linux. |
1475 first_run::DoPostImportTasks(profile_, | 1497 first_run::DoPostImportTasks(profile_, |
1476 master_prefs_->make_chrome_default_for_user); | 1498 master_prefs_->make_chrome_default_for_user); |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1591 // instead? | 1613 // instead? |
1592 CloudPrintProxyServiceFactory::GetForProfile(profile_); | 1614 CloudPrintProxyServiceFactory::GetForProfile(profile_); |
1593 #endif // defined(ENABLE_PRINT_PREVIEW) | 1615 #endif // defined(ENABLE_PRINT_PREVIEW) |
1594 | 1616 |
1595 // Start watching all browser threads for responsiveness. | 1617 // Start watching all browser threads for responsiveness. |
1596 metrics::MetricsService::SetExecutionPhase( | 1618 metrics::MetricsService::SetExecutionPhase( |
1597 metrics::MetricsService::THREAD_WATCHER_START, | 1619 metrics::MetricsService::THREAD_WATCHER_START, |
1598 g_browser_process->local_state()); | 1620 g_browser_process->local_state()); |
1599 ThreadWatcherList::StartWatchingAll(parsed_command_line()); | 1621 ThreadWatcherList::StartWatchingAll(parsed_command_line()); |
1600 | 1622 |
1601 #if defined(OS_ANDROID) | 1623 // TODO(bshe): Use defined(ANDROID_JAVA_UI) once |
1624 // codereview.chromium.org/1459793002 landed. | |
1625 #if defined(OS_ANDROID) && !defined(USE_AURA) | |
1602 ThreadWatcherAndroid::RegisterApplicationStatusListener(); | 1626 ThreadWatcherAndroid::RegisterApplicationStatusListener(); |
bshe
2015/11/24 19:24:57
I am not sure what is this for. It looks like we u
mfomitchev
2015/11/30 21:34:17
From a quick look, the class's purpose is deactiva
bshe
2015/12/03 14:33:05
Added a TODO.
| |
1603 #endif // defined(OS_ANDROID) | 1627 #endif // defined(OS_ANDROID) && !defined(USE_AURA) |
1604 | 1628 |
1605 #if !defined(DISABLE_NACL) | 1629 #if !defined(DISABLE_NACL) |
1606 BrowserThread::PostTask( | 1630 BrowserThread::PostTask( |
1607 BrowserThread::IO, | 1631 BrowserThread::IO, |
1608 FROM_HERE, | 1632 FROM_HERE, |
1609 base::Bind(nacl::NaClProcessHost::EarlyStartup)); | 1633 base::Bind(nacl::NaClProcessHost::EarlyStartup)); |
1610 #endif // !defined(DISABLE_NACL) | 1634 #endif // !defined(DISABLE_NACL) |
1611 | 1635 |
1612 // Make sure initial prefs are recorded | 1636 // Make sure initial prefs are recorded |
1613 PrefMetricsService::Factory::GetForProfile(profile_); | 1637 PrefMetricsService::Factory::GetForProfile(profile_); |
(...skipping 16 matching lines...) Expand all Loading... | |
1630 #if defined(OS_ANDROID) | 1654 #if defined(OS_ANDROID) |
1631 variations::VariationsService* variations_service = | 1655 variations::VariationsService* variations_service = |
1632 browser_process_->variations_service(); | 1656 browser_process_->variations_service(); |
1633 if (variations_service) { | 1657 if (variations_service) { |
1634 // Just initialize the policy prefs service here. Variations seed fetching | 1658 // Just initialize the policy prefs service here. Variations seed fetching |
1635 // will be initialized when the app enters foreground mode. | 1659 // will be initialized when the app enters foreground mode. |
1636 variations_service->set_policy_pref_service(profile_->GetPrefs()); | 1660 variations_service->set_policy_pref_service(profile_->GetPrefs()); |
1637 } | 1661 } |
1638 translate::TranslateDownloadManager::RequestLanguageList( | 1662 translate::TranslateDownloadManager::RequestLanguageList( |
1639 profile_->GetPrefs()); | 1663 profile_->GetPrefs()); |
1640 | |
1641 #else | 1664 #else |
1642 // Most general initialization is behind us, but opening a | 1665 // Most general initialization is behind us, but opening a |
1643 // tab and/or session restore and such is still to be done. | 1666 // tab and/or session restore and such is still to be done. |
1644 base::TimeTicks browser_open_start = base::TimeTicks::Now(); | 1667 base::TimeTicks browser_open_start = base::TimeTicks::Now(); |
1645 | 1668 |
1646 // We are in regular browser boot sequence. Open initial tabs and enter the | 1669 // We are in regular browser boot sequence. Open initial tabs and enter the |
1647 // main message loop. | 1670 // main message loop. |
1648 std::vector<Profile*> last_opened_profiles; | 1671 std::vector<Profile*> last_opened_profiles; |
1649 #if !defined(OS_CHROMEOS) | 1672 #if !defined(OS_CHROMEOS) |
1650 // On ChromeOS multiple profiles doesn't apply, and will break if we load | 1673 // On ChromeOS multiple profiles doesn't apply, and will break if we load |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1707 } | 1730 } |
1708 } | 1731 } |
1709 run_message_loop_ = started; | 1732 run_message_loop_ = started; |
1710 browser_creator_.reset(); | 1733 browser_creator_.reset(); |
1711 | 1734 |
1712 #if !defined(OS_LINUX) || defined(OS_CHROMEOS) // http://crbug.com/426393 | 1735 #if !defined(OS_LINUX) || defined(OS_CHROMEOS) // http://crbug.com/426393 |
1713 if (g_browser_process->metrics_service()->reporting_active()) | 1736 if (g_browser_process->metrics_service()->reporting_active()) |
1714 content::StartPowerUsageMonitor(); | 1737 content::StartPowerUsageMonitor(); |
1715 #endif // !defined(OS_LINUX) || defined(OS_CHROMEOS) | 1738 #endif // !defined(OS_LINUX) || defined(OS_CHROMEOS) |
1716 | 1739 |
1740 #if !defined(OS_ANDROID) | |
1717 process_power_collector_.reset(new ProcessPowerCollector); | 1741 process_power_collector_.reset(new ProcessPowerCollector); |
1718 process_power_collector_->Initialize(); | 1742 process_power_collector_->Initialize(); |
1719 #endif // !defined(OS_ANDROID) | 1743 #endif // !defined(OS_ANDROID) |
1744 #endif // !defined(OS_ANDROID) && !defined(USE_AURA) | |
1720 | 1745 |
1721 PostBrowserStart(); | 1746 PostBrowserStart(); |
1722 | 1747 |
1723 if (parameters().ui_task) { | 1748 if (parameters().ui_task) { |
1724 parameters().ui_task->Run(); | 1749 parameters().ui_task->Run(); |
1725 delete parameters().ui_task; | 1750 delete parameters().ui_task; |
1726 run_message_loop_ = false; | 1751 run_message_loop_ = false; |
1727 } | 1752 } |
1728 #if defined(OS_ANDROID) | 1753 #if defined(OS_ANDROID) |
1729 // We never run the C++ main loop on Android, since the UI thread message | 1754 // We never run the C++ main loop on Android, since the UI thread message |
1730 // loop is controlled by the OS, so this is as close as we can get to | 1755 // loop is controlled by the OS, so this is as close as we can get to |
1731 // the start of the main loop. | 1756 // the start of the main loop. |
1732 if (result_code_ <= 0) { | 1757 if (result_code_ <= 0) { |
1733 RecordBrowserStartupTime(); | 1758 RecordBrowserStartupTime(); |
1734 } | 1759 } |
1735 #endif // defined(OS_ANDROID) | 1760 #endif // defined(OS_ANDROID) |
1736 | 1761 |
1737 #if !defined(OS_ANDROID) | 1762 // TODO(bshe): Use !defined(ANDROID_JAVA_UI) once |
1763 // codereview.chromium.org/1459793002 landed. | |
1764 #if !defined(OS_ANDROID) || defined(USE_AURA) | |
1738 UMA_HISTOGRAM_TIMES("Startup.PreMainMessageLoopRunImplStep3Time", | 1765 UMA_HISTOGRAM_TIMES("Startup.PreMainMessageLoopRunImplStep3Time", |
1739 base::TimeTicks::Now() - start_time_step3); | 1766 base::TimeTicks::Now() - start_time_step3); |
1740 #endif // !defined(OS_ANDROID) | 1767 #endif // !defined(OS_ANDROID) || defined(USE_AURA) |
1741 | 1768 |
1742 return result_code_; | 1769 return result_code_; |
1743 } | 1770 } |
1744 | 1771 |
1745 bool ChromeBrowserMainParts::MainMessageLoopRun(int* result_code) { | 1772 bool ChromeBrowserMainParts::MainMessageLoopRun(int* result_code) { |
1746 // Trace the entry and exit of this method. We don't use the TRACE_EVENT0 | 1773 // Trace the entry and exit of this method. We don't use the TRACE_EVENT0 |
1747 // macro because the tracing infrastructure doesn't expect a synchronous event | 1774 // macro because the tracing infrastructure doesn't expect a synchronous event |
1748 // around the main loop of a thread. | 1775 // around the main loop of a thread. |
1749 ScopedMainMessageLoopRunEvent scoped_main_message_loop_run_event; | 1776 ScopedMainMessageLoopRunEvent scoped_main_message_loop_run_event; |
1750 #if defined(OS_ANDROID) | 1777 #if defined(OS_ANDROID) |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1850 chromeos::CrosSettings::Shutdown(); | 1877 chromeos::CrosSettings::Shutdown(); |
1851 #endif // defined(OS_CHROMEOS) | 1878 #endif // defined(OS_CHROMEOS) |
1852 #endif // defined(OS_ANDROID) | 1879 #endif // defined(OS_ANDROID) |
1853 } | 1880 } |
1854 | 1881 |
1855 // Public members: | 1882 // Public members: |
1856 | 1883 |
1857 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { | 1884 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { |
1858 chrome_extra_parts_.push_back(parts); | 1885 chrome_extra_parts_.push_back(parts); |
1859 } | 1886 } |
OLD | NEW |