| 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 eab2002ac7c466c1499a27ddf7e5261d20464224..e1dcceaa90a29e1ccff280e241be98494d625446 100644
|
| --- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc
|
| +++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
|
| @@ -47,6 +47,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.";
|
| @@ -234,6 +237,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
|
| //
|
|
|