| Index: chrome/browser/extensions/extension_prefs.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_prefs.cc (revision 34323)
|
| +++ chrome/browser/extensions/extension_prefs.cc (working copy)
|
| @@ -36,6 +36,11 @@
|
| // A preference that tracks extension shelf configuration. This is a list
|
| // object read from the Preferences file, containing a list of toolstrip URLs.
|
| const wchar_t kExtensionShelf[] = L"extensions.shelf";
|
| +
|
| +// A preference that tracks browser action toolbar configuration. This is a list
|
| +// object stored in the Preferences file. The extensions are stored by ID.
|
| +const wchar_t kExtensionToolbar[] = L"extensions.toolbar";
|
| +
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -105,6 +110,8 @@
|
| prefs_->RegisterDictionaryPref(kExtensionsPref);
|
| if (!prefs->FindPreference(kExtensionShelf))
|
| prefs->RegisterListPref(kExtensionShelf);
|
| + if (!prefs->FindPreference(kExtensionToolbar))
|
| + prefs->RegisterListPref(kExtensionToolbar);
|
| MakePathsRelative();
|
| }
|
|
|
| @@ -314,6 +321,30 @@
|
| prefs_->ScheduleSavePersistentPrefs();
|
| }
|
|
|
| +std::vector<std::string> ExtensionPrefs::GetToolbarOrder() {
|
| + std::vector<std::string> 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;
|
| +}
|
| +
|
| +void ExtensionPrefs::SetToolbarOrder(
|
| + const std::vector<std::string>& extension_ids) {
|
| + ListValue* toolbar_order = prefs_->GetMutableList(kExtensionToolbar);
|
| + 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));
|
| + }
|
| + prefs_->ScheduleSavePersistentPrefs();
|
| +}
|
| +
|
| void ExtensionPrefs::OnExtensionInstalled(Extension* extension) {
|
| const std::string& id = extension->id();
|
| // Make sure we don't enable a disabled extension.
|
|
|