| 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 |