diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-22 13:09:45 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-22 13:09:45 +0000 |
commit | 277404c272c394aae9f7f13f380d603705de3238 (patch) | |
tree | ab3359cf9842f4d7e6351557654222f2284039f1 /chrome/test | |
parent | 6d17363cf71ed2f09be55c58b189be36ce087cbc (diff) | |
download | chromium_src-277404c272c394aae9f7f13f380d603705de3238.zip chromium_src-277404c272c394aae9f7f13f380d603705de3238.tar.gz chromium_src-277404c272c394aae9f7f13f380d603705de3238.tar.bz2 |
Reland "Factor out reading and writing of preferences into |PrefStore|."
The CL now applies after r45225 (Throw out preferences files that are corrupt rather than keeping them in read-only mode), which means that the changes in that commit moved to JsonPrefStore.
I updated JsonPrefStoreTest.InvalidFile to test the new behavior.
***
In order to implement platform-specific policies, reading and writing preferences needs to be abstracted from the |PrefService|. The interface for that is now |PrefStore|, with an implementation |JsonPrefStore|, which stores the pref data in a JSON file. There is another implementation, |DummyPrefStore|, which doesn't store any persistent preferences, and is currently used for tests.
Most of the changes are for using the new interface, which is |new PrefService(new JsonPrefStore(filename))| instead of |new PrefService(filename)|.
BUG=40259
TEST=PrefServiceTest.*:PrefServiceSetValueTest.*:PrefMemberTest.*:JsonPrefStoreTest.*
Review URL: http://codereview.chromium.org/1717007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45309 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
-rw-r--r-- | chrome/test/data/pref_service/invalid.json | 1 | ||||
-rw-r--r-- | chrome/test/reliability/page_load_test.cc | 4 | ||||
-rw-r--r-- | chrome/test/testing_profile.h | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/chrome/test/data/pref_service/invalid.json b/chrome/test/data/pref_service/invalid.json new file mode 100644 index 0000000..43392a9 --- /dev/null +++ b/chrome/test/data/pref_service/invalid.json @@ -0,0 +1 @@ +!@#$%^&
\ No newline at end of file diff --git a/chrome/test/reliability/page_load_test.cc b/chrome/test/reliability/page_load_test.cc index fb673b9..eba821a 100644 --- a/chrome/test/reliability/page_load_test.cc +++ b/chrome/test/reliability/page_load_test.cc @@ -48,6 +48,7 @@ #include "base/test/test_file_util.h" #include "base/time.h" #include "chrome/app/chrome_version_info.h" +#include "chrome/browser/json_pref_store.h" #include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/pref_service.h" #include "chrome/common/chrome_constants.h" @@ -526,7 +527,8 @@ class PageLoadTest : public UITest { FilePath local_state_path = user_data_dir() .Append(chrome::kLocalStateFilename); - PrefService* local_state(new PrefService(local_state_path)); + PrefService* local_state(new PrefService( + new JsonPrefStore(local_state_path))); return local_state; } diff --git a/chrome/test/testing_profile.h b/chrome/test/testing_profile.h index f3c37f0..acb724e 100644 --- a/chrome/test/testing_profile.h +++ b/chrome/test/testing_profile.h @@ -17,6 +17,7 @@ #include "chrome/browser/host_content_settings_map.h" #include "chrome/browser/history/history.h" #include "chrome/browser/in_process_webkit/webkit_context.h" +#include "chrome/browser/json_pref_store.h" #include "chrome/browser/net/url_request_context_getter.h" #include "chrome/browser/pref_service.h" #include "chrome/browser/profile.h" @@ -143,7 +144,7 @@ class TestingProfile : public Profile { if (!prefs_.get()) { FilePath prefs_filename = path_.Append(FILE_PATH_LITERAL("TestPreferences")); - prefs_.reset(new PrefService(prefs_filename)); + prefs_.reset(new PrefService(new JsonPrefStore(prefs_filename))); Profile::RegisterUserPrefs(prefs_.get()); browser::RegisterAllPrefs(prefs_.get(), prefs_.get()); } |