summaryrefslogtreecommitdiffstats
path: root/chrome/common/pref_names.h
diff options
context:
space:
mode:
authormdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-14 22:50:28 +0000
committermdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-14 22:50:28 +0000
commit9b96ccd84e5adb4f85babaef98b7259932a84788 (patch)
treefd131844c748d74c52f8f30725ff01168c226761 /chrome/common/pref_names.h
parent8a297f0391d76378ab63b6070bef33ef319c0e22 (diff)
downloadchromium_src-9b96ccd84e5adb4f85babaef98b7259932a84788.zip
chromium_src-9b96ccd84e5adb4f85babaef98b7259932a84788.tar.gz
chromium_src-9b96ccd84e5adb4f85babaef98b7259932a84788.tar.bz2
Linux: make externally-stored passwords (e.g. GNOME Keyring) profile-specific.
This is accomplished by associating a randomly generated id with each profile, and storing the profile id with the passwords. The ids are chosen such that they are obviously not unique ids (there are more users than ids), yet within one machine they should be unique with high probability. Although profiles have names, it turns out that using these names as the identifiers is not preferable for two reasons. First, the names are actually the account email addresses, and not user-provided strings. The default profile, if not using sync, has the empty string for its name. This means that we still have to worry about migration in this case, and can't cleanly assume that existing passwords "belong" to the default profile, because we can't always tell which profile is the default. Second, the sync code seems to be rather non-robust and fails frequently when passwords change underneath it. Using the profile name would mean that the same account synced within different user data dirs would share passwords, which the sync code won't really like. (Of course, this is the current situation as well, with different user data dirs.) Speaking of migration: this change leaves the original, shared passwords alone, and they will be migrated (copied, really) into each profile the first time it is used. After a while, we can add code to delete these shared passwords so they don't persist forever without being visible in the UI. Eventually, we can remove the migration and deletion code. BUG=77022 Review URL: http://codereview.chromium.org/7212031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92615 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/pref_names.h')
-rw-r--r--chrome/common/pref_names.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 99f272c..7458130 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -245,6 +245,11 @@ extern const char kDisable3DAPIs[];
extern const char kEnableHyperlinkAuditing[];
extern const char kEnableReferrers[];
+#if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX)
+extern const char kLocalProfileId[];
+extern const char kPasswordsUseLocalProfileId[];
+#endif
+
// Local state prefs. Please add Profile prefs above instead.
extern const char kCertRevocationCheckingEnabled[];
extern const char kSSL3Enabled[];