Chromium Code Reviews| Index: chrome/browser/chrome_browser_main.cc |
| diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc |
| index 262d91c8b06ff3eeefc1474964e5284c8d531fe5..41f64ca2adadce8aaf4cd5f3c5dec942626af4a2 100644 |
| --- a/chrome/browser/chrome_browser_main.cc |
| +++ b/chrome/browser/chrome_browser_main.cc |
| @@ -33,6 +33,7 @@ |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/string_piece.h" |
| #include "base/strings/string_split.h" |
| +#include "base/strings/string_util.h" |
| #include "base/strings/sys_string_conversions.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/sys_info.h" |
| @@ -205,6 +206,7 @@ |
| #if defined(OS_WIN) |
| #include "base/trace_event/trace_event_etw_export_win.h" |
| +#include "base/win/win_util.h" |
| #include "base/win/windows_version.h" |
| #include "chrome/app/file_pre_reader_win.h" |
| #include "chrome/browser/chrome_browser_main_win.h" |
| @@ -290,6 +292,10 @@ using content::BrowserThread; |
| namespace { |
| +// feature used to remove AutoImport on first run is default-off |
| +const base::Feature kFirstRunAutoImport{"FirstRunAutoImport", |
|
manzagop (departed)
2016/08/18 15:59:56
I'd call it DisableFirstRunAutoImport, so it's acc
gcomanici
2016/08/19 16:04:30
Done.
|
| + base::FEATURE_DISABLED_BY_DEFAULT}; |
| + |
| // A provider of Geolocation services to override AccessTokenStore. |
| class ChromeGeolocationDelegate : public device::GeolocationDelegate { |
| public: |
| @@ -350,9 +356,8 @@ struct WorkerPoolVariationValues { |
| // Additional values may appear as necessary and will be ignored. |
| WorkerPoolVariationValues StringToWorkerPoolVariationValues( |
| const base::StringPiece pool_descriptor) { |
| - const std::vector<std::string> tokens = |
| - SplitString(pool_descriptor, ";", |
| - base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
| + const std::vector<std::string> tokens = SplitString( |
| + pool_descriptor, ";", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
| int minimum; |
| int maximum; |
| double multiplier; |
| @@ -360,8 +365,7 @@ WorkerPoolVariationValues StringToWorkerPoolVariationValues( |
| int detach_milliseconds; |
| // Checking for a size greater than the expected amount allows us to be |
| // forward compatible if we add more variation values. |
| - if (tokens.size() >= 5 && |
| - base::StringToInt(tokens[0], &minimum) && |
| + if (tokens.size() >= 5 && base::StringToInt(tokens[0], &minimum) && |
| base::StringToInt(tokens[1], &maximum) && |
| base::StringToDouble(tokens[2], &multiplier) && |
| base::StringToInt(tokens[3], &offset) && |
| @@ -414,10 +418,10 @@ void MaybeInitializeTaskScheduler() { |
| IORestriction io_restriction; |
| }; |
| static const SchedulerWorkerPoolPredefinedParams kAllPredefinedParams[] = { |
| - {"Background", ThreadPriority::BACKGROUND, IORestriction::DISALLOWED}, |
| - {"BackgroundFileIO", ThreadPriority::BACKGROUND, IORestriction::ALLOWED}, |
| - {"Foreground", ThreadPriority::NORMAL, IORestriction::DISALLOWED}, |
| - {"ForegroundFileIO", ThreadPriority::NORMAL, IORestriction::ALLOWED}, |
| + {"Background", ThreadPriority::BACKGROUND, IORestriction::DISALLOWED}, |
| + {"BackgroundFileIO", ThreadPriority::BACKGROUND, IORestriction::ALLOWED}, |
| + {"Foreground", ThreadPriority::NORMAL, IORestriction::DISALLOWED}, |
| + {"ForegroundFileIO", ThreadPriority::NORMAL, IORestriction::ALLOWED}, |
| }; |
| static_assert(arraysize(kAllPredefinedParams) == WORKER_POOL_COUNT, |
| "Mismatched Worker Pool Types and Predefined Parameters"); |
| @@ -436,16 +440,15 @@ void MaybeInitializeTaskScheduler() { |
| if (variation_values.threads <= 0 || |
| variation_values.detach_period.is_zero()) { |
| - DLOG(ERROR) << "Invalid Worker Pool Configuration: " << |
| - predefined_params.name << " [" << pair->second << "]"; |
| + DLOG(ERROR) << "Invalid Worker Pool Configuration: " |
| + << predefined_params.name << " [" << pair->second << "]"; |
| return; |
| } |
| - params_vector.emplace_back(predefined_params.name, |
| - predefined_params.priority_hint, |
| - predefined_params.io_restriction, |
| - variation_values.threads, |
| - variation_values.detach_period); |
| + params_vector.emplace_back( |
| + predefined_params.name, predefined_params.priority_hint, |
| + predefined_params.io_restriction, variation_values.threads, |
| + variation_values.detach_period); |
| } |
| DCHECK_EQ(WORKER_POOL_COUNT, params_vector.size()); |
| @@ -581,9 +584,9 @@ Profile* CreatePrimaryProfile(const content::MainFunctionParams& parameters, |
| profile = GetFallbackStartupProfile(); |
| if (!profile) { |
| - ProfileErrorType error_type = profile_dir_specified ? |
| - PROFILE_ERROR_CREATE_FAILURE_SPECIFIED : |
| - PROFILE_ERROR_CREATE_FAILURE_ALL; |
| + ProfileErrorType error_type = profile_dir_specified |
| + ? PROFILE_ERROR_CREATE_FAILURE_SPECIFIED |
| + : PROFILE_ERROR_CREATE_FAILURE_ALL; |
| // TODO(lwchkg): What diagnostics do you want to include in the feedback |
| // report when an error occurs? |
| @@ -593,14 +596,15 @@ Profile* CreatePrimaryProfile(const content::MainFunctionParams& parameters, |
| } |
| #endif // defined(OS_CHROMEOS) || defined(OS_ANDROID) |
| - UMA_HISTOGRAM_LONG_TIMES( |
| - "Startup.CreateFirstProfile", base::Time::Now() - start); |
| + UMA_HISTOGRAM_LONG_TIMES("Startup.CreateFirstProfile", |
| + base::Time::Now() - start); |
| return profile; |
| } |
| #if defined(OS_MACOSX) |
| OSStatus KeychainCallback(SecKeychainEvent keychain_event, |
| - SecKeychainCallbackInfo* info, void* context) { |
| + SecKeychainCallbackInfo* info, |
| + void* context) { |
| return noErr; |
| } |
| #endif // defined(OS_MACOSX) |
| @@ -609,9 +613,9 @@ void RegisterComponentsForUpdate() { |
| component_updater::ComponentUpdateService* cus = |
| g_browser_process->component_updater(); |
| - // Registration can be before or after cus->Start() so it is ok to post |
| - // a task to the UI thread to do registration once you done the necessary |
| - // file IO to know you existing component version. |
| +// Registration can be before or after cus->Start() so it is ok to post |
| +// a task to the UI thread to do registration once you done the necessary |
| +// file IO to know you existing component version. |
| #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) |
| RegisterRecoveryComponent(cus, g_browser_process->local_state()); |
| RegisterPepperFlashComponent(cus); |
| @@ -688,8 +692,8 @@ bool ProcessSingletonNotificationCallback( |
| UMA_HISTOGRAM_LONG_TIMES( |
| "Startup.WarmStartTimeFromRemoteProcessStartFast", elapsed); |
| } else { |
| - UMA_HISTOGRAM_LONG_TIMES( |
| - "Startup.WarmStartTimeFromRemoteProcessStart", elapsed); |
| + UMA_HISTOGRAM_LONG_TIMES("Startup.WarmStartTimeFromRemoteProcessStart", |
| + elapsed); |
| } |
| } |
| } |
| @@ -815,7 +819,7 @@ ChromeBrowserMainParts::ChromeBrowserMainParts( |
| } |
| ChromeBrowserMainParts::~ChromeBrowserMainParts() { |
| - for (int i = static_cast<int>(chrome_extra_parts_.size())-1; i >= 0; --i) |
| + for (int i = static_cast<int>(chrome_extra_parts_.size()) - 1; i >= 0; --i) |
| delete chrome_extra_parts_[i]; |
| chrome_extra_parts_.clear(); |
| } |
| @@ -871,8 +875,8 @@ void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() { |
| flags_ui::PrefServiceFlagsStorage flags_storage( |
| g_browser_process->local_state()); |
| std::vector<std::string> variation_ids = |
| - about_flags::RegisterAllFeatureVariationParameters( |
| - &flags_storage, feature_list.get()); |
| + about_flags::RegisterAllFeatureVariationParameters(&flags_storage, |
| + feature_list.get()); |
| variations::VariationsHttpHeaderProvider* http_header_provider = |
| variations::VariationsHttpHeaderProvider::GetInstance(); |
| @@ -1116,7 +1120,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { |
| // Force MediaCaptureDevicesDispatcher to be created on UI thread. |
| MediaCaptureDevicesDispatcher::GetInstance(); |
| - // Android's first run is done in Java instead of native. |
| +// Android's first run is done in Java instead of native. |
| #if !defined(OS_ANDROID) |
| process_singleton_.reset(new ChromeProcessSingleton( |
| user_data_dir_, base::Bind(&ProcessSingletonNotificationCallback))); |
| @@ -1131,28 +1135,29 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { |
| BrowserThread::GetBlockingPool()); |
| { |
| - TRACE_EVENT0("startup", |
| - "ChromeBrowserMainParts::PreCreateThreadsImpl:InitBrowswerProcessImpl"); |
| + TRACE_EVENT0( |
| + "startup", |
| + "ChromeBrowserMainParts::PreCreateThreadsImpl:InitBrowswerProcessImpl"); |
| browser_process_.reset(new BrowserProcessImpl(local_state_task_runner.get(), |
| parsed_command_line())); |
| } |
| if (parsed_command_line().HasSwitch(switches::kEnableProfiling)) { |
| TRACE_EVENT0("startup", |
| - "ChromeBrowserMainParts::PreCreateThreadsImpl:InitProfiling"); |
| + "ChromeBrowserMainParts::PreCreateThreadsImpl:InitProfiling"); |
| // User wants to override default tracking status. |
| std::string flag = |
| - parsed_command_line().GetSwitchValueASCII(switches::kEnableProfiling); |
| + parsed_command_line().GetSwitchValueASCII(switches::kEnableProfiling); |
| // Default to basic profiling (no parent child support). |
| tracked_objects::ThreadData::Status status = |
| - tracked_objects::ThreadData::PROFILING_ACTIVE; |
| + tracked_objects::ThreadData::PROFILING_ACTIVE; |
| if (flag.compare("0") != 0) |
| status = tracked_objects::ThreadData::DEACTIVATED; |
| tracked_objects::ThreadData::InitializeAndSetTrackingStatus(status); |
| } |
| - local_state_ = InitializeLocalState( |
| - local_state_task_runner.get(), parsed_command_line()); |
| + local_state_ = InitializeLocalState(local_state_task_runner.get(), |
| + parsed_command_line()); |
| #if !defined(OS_ANDROID) |
| // These members must be initialized before returning from this function. |
| @@ -1171,7 +1176,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { |
| // the session manager. |
| { |
| TRACE_EVENT0("startup", |
| - "ChromeBrowserMainParts::PreCreateThreadsImpl:ConvertFlags"); |
| + "ChromeBrowserMainParts::PreCreateThreadsImpl:ConvertFlags"); |
| flags_ui::PrefServiceFlagsStorage flags_storage( |
| g_browser_process->local_state()); |
| about_flags::ConvertFlagsToSwitches(&flags_storage, |
| @@ -1207,26 +1212,27 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { |
| crash_keys::SetCrashKeysFromCommandLine( |
| *base::CommandLine::ForCurrentProcess()); |
| - // Mac starts it earlier in |PreMainMessageLoopStart()| (because it is |
| - // needed when loading the MainMenu.nib and the language doesn't depend on |
| - // anything since it comes from Cocoa. |
| +// Mac starts it earlier in |PreMainMessageLoopStart()| (because it is |
| +// needed when loading the MainMenu.nib and the language doesn't depend on |
| +// anything since it comes from Cocoa. |
| #if defined(OS_MACOSX) |
| std::string locale = |
| parameters().ui_task ? "en-US" : l10n_util::GetLocaleOverride(); |
| browser_process_->SetApplicationLocale(locale); |
| #else |
| - const std::string locale = |
| - local_state_->GetString(prefs::kApplicationLocale); |
| + const std::string locale = local_state_->GetString(prefs::kApplicationLocale); |
| // On a POSIX OS other than ChromeOS, the parameter that is passed to the |
| // method InitSharedInstance is ignored. |
| - TRACE_EVENT_BEGIN0("startup", |
| + TRACE_EVENT_BEGIN0( |
| + "startup", |
| "ChromeBrowserMainParts::PreCreateThreadsImpl:InitResourceBundle"); |
| const std::string loaded_locale = |
| ui::ResourceBundle::InitSharedInstanceWithLocale( |
| locale, NULL, ui::ResourceBundle::LOAD_COMMON_RESOURCES); |
| - TRACE_EVENT_END0("startup", |
| + TRACE_EVENT_END0( |
| + "startup", |
| "ChromeBrowserMainParts::PreCreateThreadsImpl:InitResourceBundle"); |
| if (loaded_locale.empty() && |
| @@ -1239,7 +1245,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { |
| { |
| TRACE_EVENT0("startup", |
| - "ChromeBrowserMainParts::PreCreateThreadsImpl:AddDataPack"); |
| + "ChromeBrowserMainParts::PreCreateThreadsImpl:AddDataPack"); |
| base::FilePath resources_pack_path; |
| PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path); |
| #if defined(OS_ANDROID) |
| @@ -1446,9 +1452,10 @@ void WINAPI SyzyASANExperimentCallback(const char* name, const char* group) { |
| } |
| void SetupSyzyASAN() { |
| - typedef VOID(WINAPI* SyzyASANExperimentCallbackFn)(const char* name, |
| - const char* group); |
| - typedef VOID(WINAPI* SyzyASANEnumExperimentsFn)(SyzyASANExperimentCallbackFn); |
| + typedef VOID(WINAPI * SyzyASANExperimentCallbackFn)(const char* name, |
| + const char* group); |
| + typedef VOID(WINAPI * |
| + SyzyASANEnumExperimentsFn)(SyzyASANExperimentCallbackFn); |
| HMODULE syzyasan_handle = ::GetModuleHandle(L"syzyasan_rtl.dll"); |
| if (!syzyasan_handle) |
| return; |
| @@ -1456,7 +1463,7 @@ void SetupSyzyASAN() { |
| // Export the SyzyASAN experiments as synthetic field trials. |
| SyzyASANEnumExperimentsFn syzyasan_enum_experiments = |
| reinterpret_cast<SyzyASANEnumExperimentsFn>( |
| - ::GetProcAddress(syzyasan_handle, "asan_EnumExperiments")); |
| + ::GetProcAddress(syzyasan_handle, "asan_EnumExperiments")); |
| if (syzyasan_enum_experiments) { |
| syzyasan_enum_experiments(&SyzyASANExperimentCallback); |
| } |
| @@ -1469,8 +1476,7 @@ void SetupSyzyASAN() { |
| bool success = false; |
| SyzyasanEnableDeferredFreeThreadFunc syzyasan_enable_deferred_free = |
| reinterpret_cast<SyzyasanEnableDeferredFreeThreadFunc>( |
| - ::GetProcAddress(syzyasan_handle, |
| - "asan_EnableDeferredFreeThread")); |
| + ::GetProcAddress(syzyasan_handle, "asan_EnableDeferredFreeThread")); |
| if (syzyasan_enable_deferred_free) { |
| syzyasan_enable_deferred_free(); |
| success = true; |
| @@ -1483,7 +1489,6 @@ void SetupSyzyASAN() { |
| #endif // SYZYASAN |
| - |
| void ChromeBrowserMainParts::PreBrowserStart() { |
| TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreBrowserStart"); |
| for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) |
| @@ -1514,8 +1519,7 @@ void ChromeBrowserMainParts::PostBrowserStart() { |
| // Set up a task to delete old WebRTC log files for all profiles. Use a delay |
| // to reduce the impact on startup time. |
| BrowserThread::PostDelayedTask( |
| - BrowserThread::UI, |
| - FROM_HERE, |
| + BrowserThread::UI, FROM_HERE, |
| base::Bind(&WebRtcLogUtil::DeleteOldWebRtcLogFilesForAllProfiles), |
| base::TimeDelta::FromMinutes(1)); |
| #endif // defined(ENABLE_WEBRTC) |
| @@ -1564,20 +1568,18 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| #endif |
| #if defined(ENABLE_EXTENSIONS) |
| - if (!variations::GetVariationParamValue( |
| - "LightSpeed", "EarlyInitStartup").empty()) { |
| + if (!variations::GetVariationParamValue("LightSpeed", "EarlyInitStartup") |
| + .empty()) { |
| // Try to compute this early on another thread so that we don't spend time |
| // during profile load initializing the extensions APIs. |
| - BrowserThread::PostTask( |
| - BrowserThread::FILE_USER_BLOCKING, |
| - FROM_HERE, |
| - base::Bind( |
| - base::IgnoreResult(&extensions::FeatureProvider::GetAPIFeatures))); |
| + BrowserThread::PostTask(BrowserThread::FILE_USER_BLOCKING, FROM_HERE, |
| + base::Bind(base::IgnoreResult( |
| + &extensions::FeatureProvider::GetAPIFeatures))); |
| } |
| #endif |
| - // Android updates the metrics service dynamically depending on whether the |
| - // application is in the foreground or not. Do not start here. |
| +// Android updates the metrics service dynamically depending on whether the |
| +// application is in the foreground or not. Do not start here. |
| #if !defined(OS_ANDROID) |
| // Now that the file thread has been started, start recording. |
| StartMetricsRecording(); |
| @@ -1610,8 +1612,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| if (parsed_command_line().HasSwitch(switches::kHideIcons) || |
| parsed_command_line().HasSwitch(switches::kShowIcons)) { |
| - return ChromeBrowserMainPartsWin::HandleIconsCommands( |
| - parsed_command_line_); |
| + return ChromeBrowserMainPartsWin::HandleIconsCommands(parsed_command_line_); |
| } |
| ui::SelectFileDialog::SetFactory(new ChromeSelectFileDialogFactory( |
| @@ -1621,8 +1622,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| if (parsed_command_line().HasSwitch(switches::kMakeDefaultBrowser)) { |
| bool is_managed = g_browser_process->local_state()->IsManagedPreference( |
| prefs::kDefaultBrowserSettingEnabled); |
| - if (is_managed && !g_browser_process->local_state()->GetBoolean( |
| - prefs::kDefaultBrowserSettingEnabled)) { |
| + if (is_managed && |
| + !g_browser_process->local_state()->GetBoolean( |
| + prefs::kDefaultBrowserSettingEnabled)) { |
| return static_cast<int>(chrome::RESULT_CODE_ACTION_DISALLOWED_BY_POLICY); |
| } |
| @@ -1636,7 +1638,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| CHECK(aura::Env::GetInstance()); |
| #endif // defined(USE_AURA) |
| - // Android doesn't support extensions and doesn't implement ProcessSingleton. |
| +// Android doesn't support extensions and doesn't implement ProcessSingleton. |
| #if !defined(OS_ANDROID) |
| // If the command line specifies --pack-extension, attempt the pack extension |
| // startup action and exit. |
| @@ -1660,8 +1662,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| case ProcessSingleton::PROCESS_NOTIFIED: |
| #if defined(OS_POSIX) && !defined(OS_MACOSX) |
| // On POSIX systems, print a message notifying the process is running. |
| - printf("%s\n", base::SysWideToNativeMB(base::UTF16ToWide( |
| - l10n_util::GetStringUTF16(IDS_USED_EXISTING_BROWSER))).c_str()); |
| + printf("%s\n", base::SysWideToNativeMB( |
| + base::UTF16ToWide(l10n_util::GetStringUTF16( |
| + IDS_USED_EXISTING_BROWSER))) |
| + .c_str()); |
| #endif // defined(OS_POSIX) && !defined(OS_MACOSX) |
| // Having a differentiated return type for testing allows for tests to |
| @@ -1752,9 +1756,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| // This step is costly and is already measured in Startup.CreateFirstProfile |
| // and more directly Profile.CreateAndInitializeProfile. |
| - profile_ = CreatePrimaryProfile(parameters(), |
| - user_data_dir_, |
| - parsed_command_line()); |
| + profile_ = |
| + CreatePrimaryProfile(parameters(), user_data_dir_, parsed_command_line()); |
| if (!profile_) |
| return content::RESULT_CODE_NORMAL_EXIT; |
| @@ -1779,8 +1782,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| content::WebUIControllerFactory::RegisterFactory( |
| ChromeWebUIControllerFactory::GetInstance()); |
| - // NaClBrowserDelegateImpl is accessed inside PostProfileInit(). |
| - // So make sure to create it before that. |
| +// NaClBrowserDelegateImpl is accessed inside PostProfileInit(). |
| +// So make sure to create it before that. |
| #if !defined(DISABLE_NACL) |
| NaClBrowserDelegateImpl* delegate = |
| new NaClBrowserDelegateImpl(browser_process_->profile_manager()); |
| @@ -1798,11 +1801,23 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| // preferences are registered, since some of the code that the importer |
| // touches reads preferences. |
| if (first_run::IsChromeFirstRun()) { |
| - first_run::AutoImport(profile_, |
| - master_prefs_->homepage_defined, |
| - master_prefs_->do_import_items, |
| - master_prefs_->dont_import_items, |
| - master_prefs_->import_bookmarks_path); |
| + // By default, autoImport is performed on first run. |
| + bool perform_autoImport_on_first_run = true; |
| +// A field trial that is designed to turn off the AutoImport feature |
| +// for Windows users (on first run). |
| +// The feature keeps running for enterprise. |
| +#if defined(OS_WIN) |
| + base::FieldTrial* trial = base::FieldTrialList::Find("FirstRunAutoImport"); |
| + perform_autoImport_on_first_run = |
| + !trial || !base::FeatureList::IsEnabled(kFirstRunAutoImport) || |
| + base::win::IsEnrolledToDomain(); |
| +#endif |
| + if (perform_autoImport_on_first_run) { |
| + first_run::AutoImport(profile_, master_prefs_->homepage_defined, |
| + master_prefs_->do_import_items, |
| + master_prefs_->dont_import_items, |
| + master_prefs_->import_bookmarks_path); |
| + } |
| // Note: this can pop the first run consent dialog on linux. |
| first_run::DoPostImportTasks(profile_, |
| @@ -1837,7 +1852,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| // Verify that the profile is not on a network share and if so prepare to show |
| // notification to the user. |
| if (NetworkProfileBubble::ShouldCheckNetworkProfile(profile_)) { |
| - BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
| + BrowserThread::PostTask( |
| + BrowserThread::FILE, FROM_HERE, |
| base::Bind(&NetworkProfileBubble::CheckNetworkProfile, |
| profile_->GetPath())); |
| } |
| @@ -1848,8 +1864,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| // file thread to be run sometime later. If this is the first run we record |
| // the installation event. |
| PrefService* pref_service = profile_->GetPrefs(); |
| - int ping_delay = first_run::IsChromeFirstRun() ? master_prefs_->ping_delay : |
| - pref_service->GetInteger(first_run::GetPingDelayPrefName().c_str()); |
| + int ping_delay = |
| + first_run::IsChromeFirstRun() |
| + ? master_prefs_->ping_delay |
| + : pref_service->GetInteger(first_run::GetPingDelayPrefName().c_str()); |
| // Negative ping delay means to send ping immediately after a first search is |
| // recorded. |
| rlz::RLZTracker::SetRlzDelegate( |
| @@ -1905,9 +1923,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| g_browser_process->local_state()); |
| startup_watcher_->Arm(base::TimeDelta::FromSeconds(600)); |
| - // On mobile, need for clean shutdown arises only when the application comes |
| - // to foreground (i.e. MetricsService::OnAppEnterForeground is called). |
| - // http://crbug.com/179143 |
| +// On mobile, need for clean shutdown arises only when the application comes |
| +// to foreground (i.e. MetricsService::OnAppEnterForeground is called). |
| +// http://crbug.com/179143 |
| #if !defined(OS_ANDROID) |
| // Start watching for a hang. |
| browser_process_->metrics_service()->LogNeedForCleanShutdown(); |
| @@ -1934,10 +1952,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
| #endif // defined(OS_ANDROID) |
| #if !defined(DISABLE_NACL) |
| - BrowserThread::PostTask( |
| - BrowserThread::IO, |
| - FROM_HERE, |
| - base::Bind(nacl::NaClProcessHost::EarlyStartup)); |
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
| + base::Bind(nacl::NaClProcessHost::EarlyStartup)); |
|
manzagop (departed)
2016/08/18 15:59:56
Yes, this is too big a diff. I really think git cl
gcomanici
2016/08/19 16:04:31
Done.
|
| #endif // !defined(DISABLE_NACL) |
| // Make sure initial prefs are recorded |