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:
parent
66433c1869
commit
3d87a68561
|
@ -162,8 +162,10 @@ PrefService* ChromeBrowserProcessStub::local_state() {
|
|||
base::FilePath(CefString(&settings.cache_path));
|
||||
|
||||
// Used for very early NetworkService initialization.
|
||||
// Always persist preferences for this PrefService if possible because it
|
||||
// contains the cookie encryption key on Windows.
|
||||
local_state_ = browser_prefs::CreatePrefService(
|
||||
nullptr, cache_path, !!settings.persist_user_preferences);
|
||||
nullptr /* profile */, cache_path, true /* persist_user_preferences */);
|
||||
}
|
||||
return local_state_.get();
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
Loading…
Reference in New Issue