Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(620)

Unified Diff: chrome/browser/extensions/extension_prefs.cc

Issue 10533086: Action box menu (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Action box menu Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/extension_prefs.h ('k') | chrome/browser/extensions/extension_toolbar_model.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_prefs.cc
diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc
index e2ed4ea0e9b6caf7dfc7ddb998348ab0974e2f88..425fdd5e7cde2714a3906af99dc8e3c52a74e624 100644
--- a/chrome/browser/extensions/extension_prefs.cc
+++ b/chrome/browser/extensions/extension_prefs.cc
@@ -71,6 +71,15 @@ const char kPrefDisableReason[] = "disable_reason";
// object stored in the Preferences file. The extensions are stored by ID.
const char kExtensionToolbar[] = "extensions.toolbar";
+// A preference that tracks the order of extensions in an action box
+// (list of extension ids).
+const char kExtensionActionBox[] = "extensions.action_box_order";
+
+// A preference that tracks the order of extensions in a toolbar when
+// action box is enabled (list of extension ids).
+const char kExtensionActionBoxBar[] =
+ "extensions.toolbar_order_with_action_box";
+
// The key for a serialized Time value indicating the start of the day (from the
// server's perspective) an extension last included a "ping" parameter during
// its update check.
@@ -710,7 +719,7 @@ void ExtensionPrefs::RemoveDisableReason(const std::string& extension_id) {
void ExtensionPrefs::UpdateBlacklist(
const std::set<std::string>& blacklist_set) {
- std::vector<std::string> remove_pref_ids;
+ ExtensionIdSet remove_pref_ids;
std::set<std::string> used_id_set;
const DictionaryValue* extensions = prefs_->GetDictionary(kExtensionsPref);
@@ -757,7 +766,7 @@ void ExtensionPrefs::UpdateBlacklist(
Value::CreateBooleanValue(true));
}
}
- for (unsigned int i = 0; i < remove_pref_ids.size(); ++i) {
+ for (size_t i = 0; i < remove_pref_ids.size(); ++i) {
DeleteExtensionPrefs(remove_pref_ids[i]);
}
}
@@ -1300,28 +1309,23 @@ bool ExtensionPrefs::IsExtensionDisabled(
return DoesExtensionHaveState(id, Extension::DISABLED);
}
-std::vector<std::string> ExtensionPrefs::GetToolbarOrder() {
- ExtensionIdSet extension_ids;
- const ListValue* toolbar_order = prefs_->GetList(kExtensionToolbar);
- if (toolbar_order) {
- for (size_t i = 0; i < toolbar_order->GetSize(); ++i) {
- std::string extension_id;
- if (toolbar_order->GetString(i, &extension_id))
- extension_ids.push_back(extension_id);
- }
- }
- return extension_ids;
+ExtensionPrefs::ExtensionIdSet ExtensionPrefs::GetToolbarOrder() {
+ bool action_box_enabled = extensions::switch_utils::IsActionBoxEnabled();
+ return GetExtensionPrefAsVector(
+ action_box_enabled ? kExtensionActionBoxBar : kExtensionToolbar);
}
-void ExtensionPrefs::SetToolbarOrder(
- const std::vector<std::string>& extension_ids) {
- ListPrefUpdate update(prefs_, kExtensionToolbar);
- ListValue* toolbar_order = update.Get();
- toolbar_order->Clear();
- for (std::vector<std::string>::const_iterator iter = extension_ids.begin();
- iter != extension_ids.end(); ++iter) {
- toolbar_order->Append(new StringValue(*iter));
- }
+void ExtensionPrefs::SetToolbarOrder(const ExtensionIdSet& extension_ids) {
+ SetExtensionPrefFromVector(extensions::switch_utils::IsActionBoxEnabled() ?
+ kExtensionActionBoxBar : kExtensionToolbar, extension_ids);
+}
+
+ExtensionPrefs::ExtensionIdSet ExtensionPrefs::GetActionBoxOrder() {
+ return GetExtensionPrefAsVector(kExtensionActionBox);
+}
+
+void ExtensionPrefs::SetActionBoxOrder(const ExtensionIdSet& extension_ids) {
+ SetExtensionPrefFromVector(kExtensionActionBox, extension_ids);
}
void ExtensionPrefs::OnExtensionInstalled(
@@ -2038,6 +2042,8 @@ URLPatternSet ExtensionPrefs::GetAllowedInstallSites() {
void ExtensionPrefs::RegisterUserPrefs(PrefService* prefs) {
prefs->RegisterDictionaryPref(kExtensionsPref, PrefService::UNSYNCABLE_PREF);
prefs->RegisterListPref(kExtensionToolbar, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterListPref(kExtensionActionBox, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterListPref(kExtensionActionBoxBar, PrefService::UNSYNCABLE_PREF);
prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize,
-1, // default value
PrefService::UNSYNCABLE_PREF);
@@ -2065,4 +2071,29 @@ void ExtensionPrefs::RegisterUserPrefs(PrefService* prefs) {
PrefService::UNSYNCABLE_PREF);
}
+ExtensionPrefs::ExtensionIdSet ExtensionPrefs::GetExtensionPrefAsVector(
+ const char* pref) {
+ ExtensionIdSet extension_ids;
+ const ListValue* list_of_values = prefs_->GetList(pref);
+ if (!list_of_values)
+ return extension_ids;
+
+ std::string extension_id;
+ for (size_t i = 0; i < list_of_values->GetSize(); ++i) {
+ if (list_of_values->GetString(i, &extension_id))
+ extension_ids.push_back(extension_id);
+ }
+ return extension_ids;
+}
+
+void ExtensionPrefs::SetExtensionPrefFromVector(const char* pref,
+ const ExtensionIdSet& strings) {
+ ListPrefUpdate update(prefs_, pref);
+ ListValue* list_of_values = update.Get();
+ list_of_values->Clear();
+ for (ExtensionIdSet::const_iterator iter = strings.begin();
+ iter != strings.end(); ++iter)
+ list_of_values->Append(new StringValue(*iter));
+}
+
} // namespace extensions
« no previous file with comments | « chrome/browser/extensions/extension_prefs.h ('k') | chrome/browser/extensions/extension_toolbar_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698