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

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

Issue 1473693002: Activating code to start Chrome UI in Android Aura Chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « chrome/browser/chrome_browser_main.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/chrome_browser_main.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698