blob: acbec397b17298efe33b078d6acc792b751c2809 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/regional_capabilities/regional_capabilities_prefs.h"
#include <cstdint>
#include "base/feature_list.h"
#include "base/rand_util.h"
#include "components/country_codes/country_codes.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/pref_service.h"
#include "components/regional_capabilities/regional_capabilities_switches.h"
#include "components/search_engines/search_engines_pref_names.h"
namespace regional_capabilities::prefs {
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterInt64Pref(
::prefs::kDefaultSearchProviderChoiceScreenRandomShuffleSeed, 0);
registry->RegisterIntegerPref(kCountryIDAtInstall,
country_codes::CountryId().Serialize());
if (base::FeatureList::IsEnabled(switches::kDynamicProfileCountry)) {
registry->RegisterIntegerPref(kCountryID,
country_codes::CountryId().Serialize());
}
}
uint64_t GetShuffleSeed(PrefService& profile_prefs) {
uint64_t shuffle_seed = profile_prefs.GetInt64(
::prefs::kDefaultSearchProviderChoiceScreenRandomShuffleSeed);
// Ensure that the generated seed is not 0 to avoid accidental re-seeding
// and re-shuffle next time we call this.
while (shuffle_seed == 0) {
shuffle_seed = base::RandUint64();
profile_prefs.SetInt64(
::prefs::kDefaultSearchProviderChoiceScreenRandomShuffleSeed,
shuffle_seed);
}
return shuffle_seed;
}
} // namespace regional_capabilities::prefs