chromium/chrome/browser/prefs/browser_prefs.h

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_PREFS_BROWSER_PREFS_H_
#define CHROME_BROWSER_PREFS_BROWSER_PREFS_H_

#include <string>
#include <string_view>

#include "build/build_config.h"
#include "build/chromeos_buildflags.h"

class PrefRegistrySimple;
class PrefService;

namespace base {
class FilePath;
}

namespace user_prefs {
class PrefRegistrySyncable;
}

// Gets the current country from the browser process. May be empty if the
// browser process cannot supply the country.
std::string GetCountry();

// Register all prefs that will be used via the local state PrefService.
void RegisterLocalState(PrefRegistrySimple* registry);

void RegisterScreenshotPrefs(PrefRegistrySimple* registry);

// Register all prefs that will be used via a PrefService attached to a user
// Profile using the locale of |g_browser_process|.
void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry);

// Register all prefs that will be used via a PrefService attached to a user
// Profile with the given |locale|.
void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
                              const std::string& locale);

#if BUILDFLAG(IS_CHROMEOS_ASH)
// Register all prefs that will be used via a PrefService attached to the
// sign-in profile using the locale of |g_browser_process|. |country| should be
// the permanent country code stored for this client in lowercase ISO 3166-1
// alpha-2. It can be used to pick country specific default values. May be
// empty May be empty in which case country specific preferences will be unable
// to be set.
void RegisterSigninProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
                                std::string_view country);
#endif

// Migrate/cleanup deprecated prefs in |local_state|. Over time, long deprecated
// prefs should be removed as new ones are added, but this call should never go
// away (even if it becomes an empty call for some time) as it should remain
// *the* place to drop deprecated browser-level (Local State) prefs at.
void MigrateObsoleteLocalStatePrefs(PrefService* local_state);

// Migrate/cleanup deprecated prefs in |profile_prefs|. Over time, long
// deprecated prefs should be removed as new ones are added, but this call
// should never go away (even if it becomes an empty call for some time) as it
// should remain *the* place to drop deprecated profile prefs at.
void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
                                 const base::FilePath& profile_path);

#endif  // CHROME_BROWSER_PREFS_BROWSER_PREFS_H_