Always persist local_state by default (fixes issue #2890)

If a cache_path is specified local_state will now be persisted to a
LocalPrefs.json file. This is necessary because local_state is used to store
the cookie encryption key on Windows.
This commit is contained in:
Marshall Greenblatt
2020-04-01 16:55:36 -04:00
parent 66433c1869
commit 3d87a68561
2 changed files with 6 additions and 3 deletions

View File

@@ -83,6 +83,7 @@ std::string GetAcceptLanguageList(Profile* profile) {
} // namespace
const char kUserPrefsFileName[] = "UserPrefs.json";
const char kLocalPrefsFileName[] = "LocalPrefs.json";
std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
const base::FilePath& cache_path,
@@ -118,8 +119,8 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
// Used to store user preferences.
scoped_refptr<PersistentPrefStore> user_pref_store;
if (store_on_disk) {
const base::FilePath& pref_path =
cache_path.AppendASCII(browser_prefs::kUserPrefsFileName);
const base::FilePath& pref_path = cache_path.AppendASCII(
profile ? kUserPrefsFileName : kLocalPrefsFileName);
scoped_refptr<JsonPrefStore> json_pref_store = new JsonPrefStore(
pref_path, std::unique_ptr<PrefFilter>(), sequenced_task_runner);
factory.set_user_prefs(json_pref_store.get());