Chromium Code Reviews| Index: chrome/browser/extensions/extension_pref_value_map.cc |
| diff --git a/chrome/browser/extensions/extension_pref_value_map.cc b/chrome/browser/extensions/extension_pref_value_map.cc |
| index 7032be99d9a3e64fafb9209aa5db53906cbf7150..aac4cecb6285e67300519beaa3e6794b3348e914 100644 |
| --- a/chrome/browser/extensions/extension_pref_value_map.cc |
| +++ b/chrome/browser/extensions/extension_pref_value_map.cc |
| @@ -15,8 +15,8 @@ struct ExtensionPrefValueMap::ExtensionEntry { |
| bool enabled; |
| // Regular preferences. |
| PrefValueMap reg_preferences; |
| - // Incognito preferences, empty for regular ExtensionPrefStore. |
| - PrefValueMap inc_preferences; |
| + // Persistent incognito preferences, empty for regular ExtensionPrefStore. |
| + PrefValueMap inc_preferences_persistent; |
| }; |
| ExtensionPrefValueMap::ExtensionPrefValueMap() { |
| @@ -30,18 +30,19 @@ ExtensionPrefValueMap::~ExtensionPrefValueMap() { |
| void ExtensionPrefValueMap::SetExtensionPref(const std::string& ext_id, |
| const std::string& key, |
| - bool incognito, |
| + extension_prefs_scope::Scope scope, |
| Value* value) { |
| - PrefValueMap* prefs = GetExtensionPrefValueMap(ext_id, incognito); |
| + PrefValueMap* prefs = GetExtensionPrefValueMap(ext_id, scope); |
| if (prefs->SetValue(key, value)) |
| NotifyPrefValueChanged(key); |
| } |
| -void ExtensionPrefValueMap::RemoveExtensionPref(const std::string& ext_id, |
| - const std::string& key, |
| - bool incognito) { |
| - PrefValueMap* prefs = GetExtensionPrefValueMap(ext_id, incognito); |
| +void ExtensionPrefValueMap::RemoveExtensionPref( |
| + const std::string& ext_id, |
| + const std::string& key, |
| + extension_prefs_scope::Scope scope) { |
| + PrefValueMap* prefs = GetExtensionPrefValueMap(ext_id, scope); |
| if (prefs->RemoveValue(key)) |
| NotifyPrefValueChanged(key); |
| } |
| @@ -115,20 +116,28 @@ void ExtensionPrefValueMap::SetExtensionState(const std::string& ext_id, |
| PrefValueMap* ExtensionPrefValueMap::GetExtensionPrefValueMap( |
| const std::string& ext_id, |
| - bool incognito) { |
| + extension_prefs_scope::Scope scope) { |
| ExtensionEntryMap::const_iterator i = entries_.find(ext_id); |
| CHECK(i != entries_.end()); |
| - return incognito ? &(i->second->inc_preferences) |
| - : &(i->second->reg_preferences); |
| + switch (scope) { |
| + case extension_prefs_scope::kRegular: |
| + return &(i->second->reg_preferences); |
|
Matt Perry
2011/05/24 21:04:56
Per the style guide, avoid abbrevs.
battre
2011/05/25 11:31:45
Done.
|
| + case extension_prefs_scope::kIncognitoPersistent: |
| + return &(i->second->inc_preferences_persistent); |
| + } |
| } |
| const PrefValueMap* ExtensionPrefValueMap::GetExtensionPrefValueMap( |
| const std::string& ext_id, |
| - bool incognito) const { |
| + extension_prefs_scope::Scope scope) const { |
| ExtensionEntryMap::const_iterator i = entries_.find(ext_id); |
| CHECK(i != entries_.end()); |
| - return incognito ? &(i->second->inc_preferences) |
| - : &(i->second->reg_preferences); |
| + switch (scope) { |
| + case extension_prefs_scope::kRegular: |
| + return &(i->second->reg_preferences); |
| + case extension_prefs_scope::kIncognitoPersistent: |
| + return &(i->second->inc_preferences_persistent); |
| + } |
| } |
| void ExtensionPrefValueMap::GetExtensionControlledKeys( |
| @@ -140,8 +149,8 @@ void ExtensionPrefValueMap::GetExtensionControlledKeys( |
| for (i = reg_prefs.begin(); i != reg_prefs.end(); ++i) |
| out->insert(i->first); |
| - const PrefValueMap& inc_prefs = entry.inc_preferences; |
| - for (i = inc_prefs.begin(); i != inc_prefs.end(); ++i) |
| + const PrefValueMap& inc_prefs_pers = entry.inc_preferences_persistent; |
| + for (i = inc_prefs_pers.begin(); i != inc_prefs_pers.end(); ++i) |
| out->insert(i->first); |
| } |
| @@ -156,10 +165,16 @@ const Value* ExtensionPrefValueMap::GetEffectivePrefValue( |
| const Value* value = NULL; |
| const std::string& ext_id = winner->first; |
| - if (incognito) |
| - GetExtensionPrefValueMap(ext_id, true)->GetValue(key, &value); |
| - if (!value) |
| - GetExtensionPrefValueMap(ext_id, false)->GetValue(key, &value); |
| + if (incognito) { |
| + const PrefValueMap* prefs = GetExtensionPrefValueMap( |
| + ext_id, extension_prefs_scope::kIncognitoPersistent); |
| + prefs->GetValue(key, &value); |
| + } |
| + if (!value) { |
| + const PrefValueMap* prefs = GetExtensionPrefValueMap( |
| + ext_id, extension_prefs_scope::kRegular); |
| + prefs->GetValue(key, &value); |
| + } |
| return value; |
| } |
| @@ -183,7 +198,8 @@ ExtensionPrefValueMap::GetEffectivePrefValueController( |
| continue; |
| const Value* value = NULL; |
| - const PrefValueMap* prefs = GetExtensionPrefValueMap(ext_id, false); |
| + const PrefValueMap* prefs = GetExtensionPrefValueMap( |
| + ext_id, extension_prefs_scope::kRegular); |
| if (prefs->GetValue(key, &value)) { |
| winner = i; |
| winners_install_time = install_time; |
| @@ -194,7 +210,8 @@ ExtensionPrefValueMap::GetEffectivePrefValueController( |
| if (!incognito) |
| continue; |
| - prefs = GetExtensionPrefValueMap(ext_id, true); |
| + prefs = GetExtensionPrefValueMap( |
| + ext_id, extension_prefs_scope::kIncognitoPersistent); |
| if (prefs->GetValue(key, &value)) { |
| winner = i; |
| winners_install_time = install_time; |