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

Unified Diff: chrome/browser/extensions/api/extension_action/extension_action_api.cc

Issue 14699002: Move BrowserAction references from ExtensionPrefs to ExtensionActionAPI (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 7 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
Index: chrome/browser/extensions/api/extension_action/extension_action_api.cc
diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
index 045b2d89e6d8b60cea9fde7ef32a902e261cb51b..b26b8c1a7b933d192691c29ba80e751f202e21ce 100644
--- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc
+++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
@@ -44,6 +44,9 @@ const char kBadgeBackgroundColorStorageKey[] = "badge_background_color";
const char kBadgeTextColorStorageKey[] = "badge_text_color";
const char kAppearanceStorageKey[] = "appearance";
+// Whether the browser action is visible in the toolbar.
+const char kBrowserActionVisible[] = "browser_action_visible";
+
// Errors.
const char kNoExtensionActionError[] =
"This extension has no action specified.";
@@ -227,6 +230,36 @@ ExtensionActionAPI::GetFactoryInstance() {
return &g_factory.Get();
}
+// static
+bool ExtensionActionAPI::GetBrowserActionVisibility(
+ const ExtensionPrefs* prefs,
+ const std::string& extension_id) {
+ bool visible = false;
+ if (!prefs || !prefs->ReadPrefAsBoolean(extension_id,
+ kBrowserActionVisible,
+ &visible)) {
+ return true;
+ }
+ return visible;
+}
+
+// static
+void ExtensionActionAPI::SetBrowserActionVisibility(
+ ExtensionPrefs* prefs,
+ const std::string& extension_id,
+ bool visible) {
+ if (GetBrowserActionVisibility(prefs, extension_id) == visible)
+ return;
+
+ prefs->UpdateExtensionPref(extension_id,
+ kBrowserActionVisible,
+ Value::CreateBooleanValue(visible));
+ content::NotificationService::current()->Notify(
+ chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED,
+ content::Source<ExtensionPrefs>(prefs),
+ content::Details<const std::string>(&extension_id));
+}
+
//
// ExtensionActionStorageManager
//

Powered by Google App Engine
This is Rietveld 408576698