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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 #include "net/cookies/cookie_monster.h" | 142 #include "net/cookies/cookie_monster.h" |
143 #include "net/http/http_network_layer.h" | 143 #include "net/http/http_network_layer.h" |
144 #include "net/http/http_stream_factory.h" | 144 #include "net/http/http_stream_factory.h" |
145 #include "net/url_request/url_request.h" | 145 #include "net/url_request/url_request.h" |
146 #include "ui/base/l10n/l10n_util.h" | 146 #include "ui/base/l10n/l10n_util.h" |
147 #include "ui/base/layout.h" | 147 #include "ui/base/layout.h" |
148 #include "ui/base/resource/resource_bundle.h" | 148 #include "ui/base/resource/resource_bundle.h" |
149 #include "ui/strings/grit/app_locale_settings.h" | 149 #include "ui/strings/grit/app_locale_settings.h" |
150 | 150 |
151 #if defined(OS_ANDROID) | 151 #if defined(OS_ANDROID) |
| 152 #include "ui/base/resource/resource_bundle_android.h" |
| 153 #endif // defined(OS_ANDROID) |
| 154 |
| 155 #if defined(OS_ANDROID) && !defined(USE_AURA) |
152 #include "chrome/browser/android/dev_tools_discovery_provider_android.h" | 156 #include "chrome/browser/android/dev_tools_discovery_provider_android.h" |
153 #include "chrome/browser/metrics/thread_watcher_android.h" | 157 #include "chrome/browser/metrics/thread_watcher_android.h" |
154 #include "ui/base/resource/resource_bundle_android.h" | |
155 #else | 158 #else |
156 #include "chrome/browser/devtools/chrome_devtools_discovery_provider.h" | 159 #include "chrome/browser/devtools/chrome_devtools_discovery_provider.h" |
157 #include "chrome/browser/feedback/feedback_profile_observer.h" | 160 #include "chrome/browser/feedback/feedback_profile_observer.h" |
158 #endif // defined(OS_ANDROID) | 161 #endif // defined(OS_ANDROID) && !defined(USE_AURA) |
159 | 162 |
160 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 163 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
161 #include "chrome/browser/first_run/upgrade_util_linux.h" | 164 #include "chrome/browser/first_run/upgrade_util_linux.h" |
162 #include "chrome/browser/sxs_linux.h" | 165 #include "chrome/browser/sxs_linux.h" |
163 #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS) | 166 #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS) |
164 | 167 |
165 #if defined(OS_CHROMEOS) | 168 #if defined(OS_CHROMEOS) |
166 #include "chrome/browser/chromeos/settings/cros_settings.h" | 169 #include "chrome/browser/chromeos/settings/cros_settings.h" |
167 #include "chromeos/chromeos_switches.h" | 170 #include "chromeos/chromeos_switches.h" |
168 #include "chromeos/settings/cros_settings_names.h" | 171 #include "chromeos/settings/cros_settings_names.h" |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 // This function provides some ways to test crash and assertion handling | 244 // This function provides some ways to test crash and assertion handling |
242 // behavior of the program. | 245 // behavior of the program. |
243 void HandleTestParameters(const base::CommandLine& command_line) { | 246 void HandleTestParameters(const base::CommandLine& command_line) { |
244 // This parameter causes a null pointer crash (crash reporter trigger). | 247 // This parameter causes a null pointer crash (crash reporter trigger). |
245 if (command_line.HasSwitch(switches::kBrowserCrashTest)) { | 248 if (command_line.HasSwitch(switches::kBrowserCrashTest)) { |
246 int* bad_pointer = NULL; | 249 int* bad_pointer = NULL; |
247 *bad_pointer = 0; | 250 *bad_pointer = 0; |
248 } | 251 } |
249 } | 252 } |
250 | 253 |
251 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) | 254 #if (!defined(OS_ANDROID)/* || defined(USE_AURA)*/) && !defined(OS_CHROMEOS) |
252 void AddFirstRunNewTabs(StartupBrowserCreator* browser_creator, | 255 void AddFirstRunNewTabs(StartupBrowserCreator* browser_creator, |
253 const std::vector<GURL>& new_tabs) { | 256 const std::vector<GURL>& new_tabs) { |
254 for (std::vector<GURL>::const_iterator it = new_tabs.begin(); | 257 for (std::vector<GURL>::const_iterator it = new_tabs.begin(); |
255 it != new_tabs.end(); ++it) { | 258 it != new_tabs.end(); ++it) { |
256 if (it->is_valid()) | 259 if (it->is_valid()) |
257 browser_creator->AddFirstRunTab(*it); | 260 browser_creator->AddFirstRunTab(*it); |
258 } | 261 } |
259 } | 262 } |
260 #endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS) | 263 #endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS) |
261 | 264 |
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
801 | 804 |
802 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) | 805 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) |
803 chrome_extra_parts_[i]->PostMainMessageLoopStart(); | 806 chrome_extra_parts_[i]->PostMainMessageLoopStart(); |
804 } | 807 } |
805 | 808 |
806 int ChromeBrowserMainParts::PreCreateThreads() { | 809 int ChromeBrowserMainParts::PreCreateThreads() { |
807 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreads"); | 810 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreads"); |
808 result_code_ = PreCreateThreadsImpl(); | 811 result_code_ = PreCreateThreadsImpl(); |
809 | 812 |
810 if (result_code_ == content::RESULT_CODE_NORMAL_EXIT) { | 813 if (result_code_ == content::RESULT_CODE_NORMAL_EXIT) { |
811 #if !defined(OS_ANDROID) | 814 #if !defined(OS_ANDROID) || defined(USE_AURA) |
812 // These members must be initialized before exiting this function normally. | 815 // These members must be initialized before exiting this function normally. |
813 DCHECK(master_prefs_.get()); | 816 DCHECK(master_prefs_.get()); |
814 DCHECK(browser_creator_.get()); | 817 DCHECK(browser_creator_.get()); |
815 #endif // !defined(OS_ANDROID) | 818 #endif // !defined(OS_ANDROID) || defined(USE_AURA) |
816 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) | 819 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) |
817 chrome_extra_parts_[i]->PreCreateThreads(); | 820 chrome_extra_parts_[i]->PreCreateThreads(); |
818 } | 821 } |
819 | 822 |
820 return result_code_; | 823 return result_code_; |
821 } | 824 } |
822 | 825 |
823 int ChromeBrowserMainParts::PreCreateThreadsImpl() { | 826 int ChromeBrowserMainParts::PreCreateThreadsImpl() { |
824 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreadsImpl") | 827 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreCreateThreadsImpl") |
825 run_message_loop_ = false; | 828 run_message_loop_ = false; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
863 tracked_objects::ThreadData::Status status = | 866 tracked_objects::ThreadData::Status status = |
864 tracked_objects::ThreadData::PROFILING_ACTIVE; | 867 tracked_objects::ThreadData::PROFILING_ACTIVE; |
865 if (flag.compare("0") != 0) | 868 if (flag.compare("0") != 0) |
866 status = tracked_objects::ThreadData::DEACTIVATED; | 869 status = tracked_objects::ThreadData::DEACTIVATED; |
867 tracked_objects::ThreadData::InitializeAndSetTrackingStatus(status); | 870 tracked_objects::ThreadData::InitializeAndSetTrackingStatus(status); |
868 } | 871 } |
869 | 872 |
870 local_state_ = InitializeLocalState( | 873 local_state_ = InitializeLocalState( |
871 local_state_task_runner.get(), parsed_command_line()); | 874 local_state_task_runner.get(), parsed_command_line()); |
872 | 875 |
873 #if !defined(OS_ANDROID) | 876 #if !defined(OS_ANDROID) || defined(USE_AURA) |
874 // These members must be initialized before returning from this function. | 877 // These members must be initialized before returning from this function. |
875 master_prefs_.reset(new first_run::MasterPrefs); | 878 master_prefs_.reset(new first_run::MasterPrefs); |
876 // Android doesn't use StartupBrowserCreator. | 879 // Android doesn't use StartupBrowserCreator. |
877 browser_creator_.reset(new StartupBrowserCreator); | 880 browser_creator_.reset(new StartupBrowserCreator); |
878 // TODO(yfriedman): Refactor Android to re-use UMABrowsingActivityObserver | 881 // TODO(yfriedman): Refactor Android to re-use UMABrowsingActivityObserver |
879 chrome::UMABrowsingActivityObserver::Init(); | 882 chrome::UMABrowsingActivityObserver::Init(); |
880 #endif // !defined(OS_ANDROID) | 883 #endif // !defined(OS_ANDROID) || defined(USE_AURA) |
881 | 884 |
882 #if !defined(OS_CHROMEOS) | 885 #if !defined(OS_CHROMEOS) |
883 // Convert active labs into switches. This needs to be done before | 886 // Convert active labs into switches. This needs to be done before |
884 // ResourceBundle::InitSharedInstanceWithLocale as some loaded resources are | 887 // ResourceBundle::InitSharedInstanceWithLocale as some loaded resources are |
885 // affected by experiment flags (--touch-optimized-ui in particular). | 888 // affected by experiment flags (--touch-optimized-ui in particular). |
886 // On ChromeOS system level flags are applied from the device settings from | 889 // On ChromeOS system level flags are applied from the device settings from |
887 // the session manager. | 890 // the session manager. |
888 { | 891 { |
889 TRACE_EVENT0("startup", | 892 TRACE_EVENT0("startup", |
890 "ChromeBrowserMainParts::PreCreateThreadsImpl:ConvertFlags"); | 893 "ChromeBrowserMainParts::PreCreateThreadsImpl:ConvertFlags"); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
932 return chrome::RESULT_CODE_MISSING_DATA; | 935 return chrome::RESULT_CODE_MISSING_DATA; |
933 } | 936 } |
934 CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale; | 937 CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale; |
935 browser_process_->SetApplicationLocale(loaded_locale); | 938 browser_process_->SetApplicationLocale(loaded_locale); |
936 | 939 |
937 { | 940 { |
938 TRACE_EVENT0("startup", | 941 TRACE_EVENT0("startup", |
939 "ChromeBrowserMainParts::PreCreateThreadsImpl:AddDataPack"); | 942 "ChromeBrowserMainParts::PreCreateThreadsImpl:AddDataPack"); |
940 base::FilePath resources_pack_path; | 943 base::FilePath resources_pack_path; |
941 PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path); | 944 PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path); |
942 #if defined(OS_ANDROID) | 945 #if defined(OS_ANDROID) // we do want to use this - even with Aura |
943 ui::LoadMainAndroidPackFile("assets/resources.pak", resources_pack_path); | 946 ui::LoadMainAndroidPackFile("assets/resources.pak", resources_pack_path); |
944 #else | 947 #else |
945 ResourceBundle::GetSharedInstance().AddDataPackFromPath( | 948 ResourceBundle::GetSharedInstance().AddDataPackFromPath( |
946 resources_pack_path, ui::SCALE_FACTOR_NONE); | 949 resources_pack_path, ui::SCALE_FACTOR_NONE); |
947 #endif // defined(OS_ANDROID) | 950 #endif // defined(OS_ANDROID) |
948 } | 951 } |
949 #endif // defined(OS_MACOSX) | 952 #endif // defined(OS_MACOSX) |
950 | 953 |
951 // Android does first run in Java instead of native. | 954 // Android does first run in Java instead of native. |
952 // Chrome OS has its own out-of-box-experience code. | 955 // Chrome OS has its own out-of-box-experience code. |
953 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) | 956 #if (!defined(OS_ANDROID)/* || defined(USE_AURA)*/) && !defined(OS_CHROMEOS) |
954 // On first run, we need to process the predictor preferences before the | 957 // On first run, we need to process the predictor preferences before the |
955 // browser's profile_manager object is created, but after ResourceBundle | 958 // browser's profile_manager object is created, but after ResourceBundle |
956 // is initialized. | 959 // is initialized. |
957 if (first_run::IsChromeFirstRun()) { | 960 if (first_run::IsChromeFirstRun()) { |
958 first_run::ProcessMasterPreferencesResult pmp_result = | 961 first_run::ProcessMasterPreferencesResult pmp_result = |
959 first_run::ProcessMasterPreferences(user_data_dir_, | 962 first_run::ProcessMasterPreferences(user_data_dir_, |
960 master_prefs_.get()); | 963 master_prefs_.get()); |
961 if (pmp_result == first_run::EULA_EXIT_NOW) | 964 if (pmp_result == first_run::EULA_EXIT_NOW) |
962 return chrome::RESULT_CODE_EULA_REFUSED; | 965 return chrome::RESULT_CODE_EULA_REFUSED; |
963 | 966 |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1089 #endif // defined(ENABLE_EXTENSIONS) | 1092 #endif // defined(ENABLE_EXTENSIONS) |
1090 | 1093 |
1091 #if !defined(OS_IOS) | 1094 #if !defined(OS_IOS) |
1092 InstallChromeJavaScriptNativeDialogFactory(); | 1095 InstallChromeJavaScriptNativeDialogFactory(); |
1093 #endif // !defined(OS_IOS) | 1096 #endif // !defined(OS_IOS) |
1094 } | 1097 } |
1095 | 1098 |
1096 void ChromeBrowserMainParts::PostProfileInit() { | 1099 void ChromeBrowserMainParts::PostProfileInit() { |
1097 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PostProfileInit"); | 1100 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PostProfileInit"); |
1098 | 1101 |
1099 #if defined(OS_ANDROID) | 1102 #if defined(OS_ANDROID) && !defined(USE_AURA) |
1100 DevToolsDiscoveryProviderAndroid::Install(); | 1103 DevToolsDiscoveryProviderAndroid::Install(); |
1101 #else | 1104 #else |
1102 ChromeDevToolsDiscoveryProvider::Install(); | 1105 ChromeDevToolsDiscoveryProvider::Install(); |
1103 #endif // defined(OS_ANDROID) | 1106 #endif // defined(OS_ANDROID) && !defined(USE_AURA) |
1104 | 1107 |
1105 LaunchDevToolsHandlerIfNeeded(parsed_command_line()); | 1108 LaunchDevToolsHandlerIfNeeded(parsed_command_line()); |
1106 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) | 1109 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) |
1107 chrome_extra_parts_[i]->PostProfileInit(); | 1110 chrome_extra_parts_[i]->PostProfileInit(); |
1108 } | 1111 } |
1109 | 1112 |
1110 void ChromeBrowserMainParts::PreBrowserStart() { | 1113 void ChromeBrowserMainParts::PreBrowserStart() { |
1111 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreBrowserStart"); | 1114 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreBrowserStart"); |
1112 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) | 1115 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) |
1113 chrome_extra_parts_[i]->PreBrowserStart(); | 1116 chrome_extra_parts_[i]->PreBrowserStart(); |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1364 base::TimeTicks::Now() - start_time_step1); | 1367 base::TimeTicks::Now() - start_time_step1); |
1365 | 1368 |
1366 // This step is costly and is already measured in Startup.CreateFirstProfile | 1369 // This step is costly and is already measured in Startup.CreateFirstProfile |
1367 // and more directly Profile.CreateAndInitializeProfile. | 1370 // and more directly Profile.CreateAndInitializeProfile. |
1368 profile_ = CreatePrimaryProfile(parameters(), | 1371 profile_ = CreatePrimaryProfile(parameters(), |
1369 user_data_dir_, | 1372 user_data_dir_, |
1370 parsed_command_line()); | 1373 parsed_command_line()); |
1371 if (!profile_) | 1374 if (!profile_) |
1372 return content::RESULT_CODE_NORMAL_EXIT; | 1375 return content::RESULT_CODE_NORMAL_EXIT; |
1373 | 1376 |
1374 #if !defined(OS_ANDROID) | 1377 #if !defined(OS_ANDROID) || defined(USE_AURA) |
1375 const base::TimeTicks start_time_step2 = base::TimeTicks::Now(); | 1378 const base::TimeTicks start_time_step2 = base::TimeTicks::Now(); |
1376 // The first run sentinel must be created after the process singleton was | 1379 // The first run sentinel must be created after the process singleton was |
1377 // grabbed and no early return paths were otherwise hit above. | 1380 // grabbed and no early return paths were otherwise hit above. |
1378 first_run::CreateSentinelIfNeeded(); | 1381 first_run::CreateSentinelIfNeeded(); |
1379 #endif // !defined(OS_ANDROID) | 1382 #endif // !defined(OS_ANDROID) || defined(USE_AURA) |
1380 | 1383 |
1381 #if defined(ENABLE_BACKGROUND) | 1384 #if defined(ENABLE_BACKGROUND) |
1382 // Autoload any profiles which are running background apps. | 1385 // Autoload any profiles which are running background apps. |
1383 // TODO(rlp): Do this on a separate thread. See http://crbug.com/99075. | 1386 // TODO(rlp): Do this on a separate thread. See http://crbug.com/99075. |
1384 browser_process_->profile_manager()->AutoloadProfiles(); | 1387 browser_process_->profile_manager()->AutoloadProfiles(); |
1385 #endif // defined(ENABLE_BACKGROUND) | 1388 #endif // defined(ENABLE_BACKGROUND) |
1386 // Post-profile init --------------------------------------------------------- | 1389 // Post-profile init --------------------------------------------------------- |
1387 | 1390 |
1388 TranslateService::Initialize(); | 1391 TranslateService::Initialize(); |
1389 | 1392 |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1542 // instead? | 1545 // instead? |
1543 CloudPrintProxyServiceFactory::GetForProfile(profile_); | 1546 CloudPrintProxyServiceFactory::GetForProfile(profile_); |
1544 #endif // defined(ENABLE_PRINT_PREVIEW) | 1547 #endif // defined(ENABLE_PRINT_PREVIEW) |
1545 | 1548 |
1546 // Start watching all browser threads for responsiveness. | 1549 // Start watching all browser threads for responsiveness. |
1547 metrics::MetricsService::SetExecutionPhase( | 1550 metrics::MetricsService::SetExecutionPhase( |
1548 metrics::MetricsService::THREAD_WATCHER_START, | 1551 metrics::MetricsService::THREAD_WATCHER_START, |
1549 g_browser_process->local_state()); | 1552 g_browser_process->local_state()); |
1550 ThreadWatcherList::StartWatchingAll(parsed_command_line()); | 1553 ThreadWatcherList::StartWatchingAll(parsed_command_line()); |
1551 | 1554 |
1552 #if defined(OS_ANDROID) | 1555 #if defined(OS_ANDROID) && !defined(USE_AURA) |
1553 ThreadWatcherAndroid::RegisterApplicationStatusListener(); | 1556 ThreadWatcherAndroid::RegisterApplicationStatusListener(); |
1554 #endif // defined(OS_ANDROID) | 1557 #endif // defined(OS_ANDROID) && !defined(USE_AURA) |
1555 | 1558 |
1556 #if !defined(DISABLE_NACL) | 1559 #if !defined(DISABLE_NACL) |
1557 BrowserThread::PostTask( | 1560 BrowserThread::PostTask( |
1558 BrowserThread::IO, | 1561 BrowserThread::IO, |
1559 FROM_HERE, | 1562 FROM_HERE, |
1560 base::Bind(nacl::NaClProcessHost::EarlyStartup)); | 1563 base::Bind(nacl::NaClProcessHost::EarlyStartup)); |
1561 #endif // !defined(DISABLE_NACL) | 1564 #endif // !defined(DISABLE_NACL) |
1562 | 1565 |
1563 // Make sure initial prefs are recorded | 1566 // Make sure initial prefs are recorded |
1564 PrefMetricsService::Factory::GetForProfile(profile_); | 1567 PrefMetricsService::Factory::GetForProfile(profile_); |
1565 | 1568 |
1566 PreBrowserStart(); | 1569 PreBrowserStart(); |
1567 | 1570 |
1568 // Instantiate the notification UI manager, as this triggers a perf timer | 1571 // Instantiate the notification UI manager, as this triggers a perf timer |
1569 // used to measure startup time. TODO(stevenjb): Figure out what is actually | 1572 // used to measure startup time. TODO(stevenjb): Figure out what is actually |
1570 // triggering the timer and call that explicitly in the approprate place. | 1573 // triggering the timer and call that explicitly in the approprate place. |
1571 // http://crbug.com/105065. | 1574 // http://crbug.com/105065. |
1572 browser_process_->notification_ui_manager(); | 1575 browser_process_->notification_ui_manager(); |
1573 | 1576 |
1574 // This must be called prior to RegisterComponentsForUpdate, in case the CLD | 1577 // This must be called prior to RegisterComponentsForUpdate, in case the CLD |
1575 // data source is based on the Component Updater. | 1578 // data source is based on the Component Updater. |
1576 translate::BrowserCldUtils::ConfigureDefaultDataProvider(); | 1579 translate::BrowserCldUtils::ConfigureDefaultDataProvider(); |
1577 | 1580 |
1578 if (!parsed_command_line().HasSwitch(switches::kDisableComponentUpdate)) | 1581 if (!parsed_command_line().HasSwitch(switches::kDisableComponentUpdate)) |
1579 RegisterComponentsForUpdate(); | 1582 RegisterComponentsForUpdate(); |
1580 | 1583 |
1581 #if defined(OS_ANDROID) | 1584 #if defined(OS_ANDROID) && !defined(USE_AURA) |
1582 chrome_variations::VariationsService* variations_service = | 1585 chrome_variations::VariationsService* variations_service = |
1583 browser_process_->variations_service(); | 1586 browser_process_->variations_service(); |
1584 if (variations_service) { | 1587 if (variations_service) { |
1585 // Just initialize the policy prefs service here. Variations seed fetching | 1588 // Just initialize the policy prefs service here. Variations seed fetching |
1586 // will be initialized when the app enters foreground mode. | 1589 // will be initialized when the app enters foreground mode. |
1587 variations_service->set_policy_pref_service(profile_->GetPrefs()); | 1590 variations_service->set_policy_pref_service(profile_->GetPrefs()); |
1588 } | 1591 } |
1589 translate::TranslateDownloadManager::RequestLanguageList( | 1592 translate::TranslateDownloadManager::RequestLanguageList( |
1590 profile_->GetPrefs()); | 1593 profile_->GetPrefs()); |
1591 | 1594 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1667 } else { | 1670 } else { |
1668 run_message_loop_ = false; | 1671 run_message_loop_ = false; |
1669 } | 1672 } |
1670 browser_creator_.reset(); | 1673 browser_creator_.reset(); |
1671 | 1674 |
1672 #if !defined(OS_LINUX) || defined(OS_CHROMEOS) // http://crbug.com/426393 | 1675 #if !defined(OS_LINUX) || defined(OS_CHROMEOS) // http://crbug.com/426393 |
1673 if (g_browser_process->metrics_service()->reporting_active()) | 1676 if (g_browser_process->metrics_service()->reporting_active()) |
1674 content::StartPowerUsageMonitor(); | 1677 content::StartPowerUsageMonitor(); |
1675 #endif // !defined(OS_LINUX) || defined(OS_CHROMEOS) | 1678 #endif // !defined(OS_LINUX) || defined(OS_CHROMEOS) |
1676 | 1679 |
| 1680 #if !defined(OS_ANDROID) |
1677 process_power_collector_.reset(new ProcessPowerCollector); | 1681 process_power_collector_.reset(new ProcessPowerCollector); |
1678 process_power_collector_->Initialize(); | 1682 process_power_collector_->Initialize(); |
1679 #endif // !defined(OS_ANDROID) | 1683 #endif // !defined(OS_ANDROID) |
| 1684 #endif // !defined(OS_ANDROID) && !defined(USE_AURA) |
1680 | 1685 |
1681 PostBrowserStart(); | 1686 PostBrowserStart(); |
1682 | 1687 |
1683 if (parameters().ui_task) { | 1688 if (parameters().ui_task) { |
1684 parameters().ui_task->Run(); | 1689 parameters().ui_task->Run(); |
1685 delete parameters().ui_task; | 1690 delete parameters().ui_task; |
1686 run_message_loop_ = false; | 1691 run_message_loop_ = false; |
1687 } | 1692 } |
1688 #if defined(OS_ANDROID) | 1693 #if defined(OS_ANDROID) |
1689 // We never run the C++ main loop on Android, since the UI thread message | 1694 // We never run the C++ main loop on Android, since the UI thread message |
1690 // loop is controlled by the OS, so this is as close as we can get to | 1695 // loop is controlled by the OS, so this is as close as we can get to |
1691 // the start of the main loop. | 1696 // the start of the main loop. |
1692 if (result_code_ <= 0) { | 1697 if (result_code_ <= 0) { |
1693 RecordBrowserStartupTime(); | 1698 RecordBrowserStartupTime(); |
1694 } | 1699 } |
1695 #endif // defined(OS_ANDROID) | 1700 #endif // defined(OS_ANDROID) |
1696 | 1701 |
1697 #if !defined(OS_ANDROID) | 1702 #if !defined(OS_ANDROID) || defined(USE_AURA) |
1698 UMA_HISTOGRAM_TIMES("Startup.PreMainMessageLoopRunImplStep3Time", | 1703 UMA_HISTOGRAM_TIMES("Startup.PreMainMessageLoopRunImplStep3Time", |
1699 base::TimeTicks::Now() - start_time_step3); | 1704 base::TimeTicks::Now() - start_time_step3); |
1700 #endif // !defined(OS_ANDROID) | 1705 #endif // !defined(OS_ANDROID) || defined(USE_AURA) |
1701 | 1706 |
1702 return result_code_; | 1707 return result_code_; |
1703 } | 1708 } |
1704 | 1709 |
1705 bool ChromeBrowserMainParts::MainMessageLoopRun(int* result_code) { | 1710 bool ChromeBrowserMainParts::MainMessageLoopRun(int* result_code) { |
1706 TRACE_EVENT0("startup", "ChromeBrowserMainParts::MainMessageLoopRun"); | 1711 TRACE_EVENT0("startup", "ChromeBrowserMainParts::MainMessageLoopRun"); |
1707 #if defined(OS_ANDROID) | 1712 #if defined(OS_ANDROID) |
1708 // Chrome on Android does not use default MessageLoop. It has its own | 1713 // Chrome on Android does not use default MessageLoop. It has its own |
1709 // Android specific MessageLoop | 1714 // Android specific MessageLoop |
1710 NOTREACHED(); | 1715 NOTREACHED(); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1802 chromeos::CrosSettings::Shutdown(); | 1807 chromeos::CrosSettings::Shutdown(); |
1803 #endif // defined(OS_CHROMEOS) | 1808 #endif // defined(OS_CHROMEOS) |
1804 #endif // defined(OS_ANDROID) | 1809 #endif // defined(OS_ANDROID) |
1805 } | 1810 } |
1806 | 1811 |
1807 // Public members: | 1812 // Public members: |
1808 | 1813 |
1809 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { | 1814 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { |
1810 chrome_extra_parts_.push_back(parts); | 1815 chrome_extra_parts_.push_back(parts); |
1811 } | 1816 } |
OLD | NEW |