| Index: chrome/browser/first_run/first_run.cc
|
| diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc
|
| index a13c299c3ac9743173c7146daf6fbc8d08dcc7da..522b4d7b945d662c8e40fbbb178b54a45075a050 100644
|
| --- a/chrome/browser/first_run/first_run.cc
|
| +++ b/chrome/browser/first_run/first_run.cc
|
| @@ -5,6 +5,7 @@
|
| #include "chrome/browser/first_run/first_run.h"
|
|
|
| #include <algorithm>
|
| +#include <memory>
|
| #include <utility>
|
|
|
| #include "base/command_line.h"
|
| @@ -54,7 +55,6 @@
|
| #include "chrome/installer/util/master_preferences.h"
|
| #include "chrome/installer/util/master_preferences_constants.h"
|
| #include "chrome/installer/util/util_constants.h"
|
| -#include "components/pref_registry/pref_registry_syncable.h"
|
| #include "components/prefs/pref_service.h"
|
| #include "components/search_engines/template_url_service.h"
|
| #include "components/signin/core/browser/signin_manager.h"
|
| @@ -447,10 +447,11 @@ static base::LazyInstance<base::FilePath> master_prefs_path_for_testing
|
| // object if successful; otherwise, returns NULL.
|
| installer::MasterPreferences* LoadMasterPrefs() {
|
| base::FilePath master_prefs_path;
|
| - if (!master_prefs_path_for_testing.Get().empty())
|
| + if (!master_prefs_path_for_testing.Get().empty()) {
|
| master_prefs_path = master_prefs_path_for_testing.Get();
|
| - else
|
| + } else {
|
| master_prefs_path = base::FilePath(first_run::internal::MasterPrefsPath());
|
| + }
|
| if (master_prefs_path.empty())
|
| return NULL;
|
| installer::MasterPreferences* install_prefs =
|
| @@ -494,9 +495,6 @@ void SetupMasterPrefsFromInstallPrefs(
|
| ConvertStringVectorToGURLVector(
|
| install_prefs.GetFirstRunTabs(), &out_prefs->new_tabs);
|
|
|
| - install_prefs.GetInt(installer::master_preferences::kDistroPingDelay,
|
| - &out_prefs->ping_delay);
|
| -
|
| bool value = false;
|
| if (install_prefs.GetBool(
|
| installer::master_preferences::kDistroImportSearchPref, &value)) {
|
| @@ -619,14 +617,12 @@ FirstRunState DetermineFirstRunState(bool has_sentinel,
|
| } // namespace internal
|
|
|
| MasterPrefs::MasterPrefs()
|
| - : ping_delay(0),
|
| - homepage_defined(false),
|
| + : homepage_defined(false),
|
| do_import_items(0),
|
| dont_import_items(0),
|
| make_chrome_default_for_user(false),
|
| suppress_first_run_default_browser_prompt(false),
|
| - welcome_page_on_os_upgrade_enabled(true) {
|
| -}
|
| + welcome_page_on_os_upgrade_enabled(true) {}
|
|
|
| MasterPrefs::~MasterPrefs() {}
|
|
|
| @@ -660,16 +656,6 @@ void CreateSentinelIfNeeded() {
|
| internal::CreateSentinel();
|
| }
|
|
|
| -std::string GetPingDelayPrefName() {
|
| - return base::StringPrintf("%s.%s",
|
| - installer::master_preferences::kDistroDict,
|
| - installer::master_preferences::kDistroPingDelay);
|
| -}
|
| -
|
| -void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
| - registry->RegisterIntegerPref(GetPingDelayPrefName().c_str(), 0);
|
| -}
|
| -
|
| bool SetShowFirstRunBubblePref(FirstRunBubbleOptions show_bubble_option) {
|
| PrefService* local_state = g_browser_process->local_state();
|
| if (!local_state)
|
| @@ -742,16 +728,21 @@ ProcessMasterPreferencesResult ProcessMasterPreferences(
|
| std::unique_ptr<installer::MasterPreferences> install_prefs(
|
| LoadMasterPrefs());
|
|
|
| - // Default value in case master preferences is missing or corrupt, or
|
| - // ping_delay is missing.
|
| - out_prefs->ping_delay = 90;
|
| if (install_prefs.get()) {
|
| if (!internal::ShowPostInstallEULAIfNeeded(install_prefs.get()))
|
| return EULA_EXIT_NOW;
|
|
|
| + std::unique_ptr<base::DictionaryValue> master_dictionary =
|
| + install_prefs->master_dictionary().CreateDeepCopy();
|
| + // The distribution dictionary (and any prefs below it) are never registered
|
| + // for use in Chrome's PrefService. Strip them from the master dictionary
|
| + // before mapping it to prefs.
|
| + master_dictionary->RemoveWithoutPathExpansion(
|
| + installer::master_preferences::kDistroDict, nullptr);
|
| +
|
| if (!chrome_prefs::InitializePrefsFromMasterPrefs(
|
| profiles::GetDefaultProfileDir(user_data_dir),
|
| - install_prefs->master_dictionary())) {
|
| + std::move(master_dictionary))) {
|
| DLOG(ERROR) << "Failed to initialize from master_preferences.";
|
| }
|
|
|
|
|