diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-24 04:35:08 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-24 04:35:08 +0000 |
commit | 92c6f9b9eac950c487f580709e3aab03843d15bc (patch) | |
tree | 4f25ceede36cf3655de577a48281910752f67262 /chrome/browser/extensions/extension_browser_actions_api.h | |
parent | 20ee7a74a7587986ed5db9b13aac2a78a5f0bdfc (diff) | |
download | chromium_src-92c6f9b9eac950c487f580709e3aab03843d15bc.zip chromium_src-92c6f9b9eac950c487f580709e3aab03843d15bc.tar.gz chromium_src-92c6f9b9eac950c487f580709e3aab03843d15bc.tar.bz2 |
Refactor BrowserActions, and add support for
tab-specific state.
Future changelists will move Page Actions over to
ExtensionAction2, then replace ExtensionAction and
ExtensionActionState with ExtensionAction2.
Also, fix a bug in setIcon({path:...}) where it
would work only the first time.
BUG=24669,24472
Review URL: http://codereview.chromium.org/306044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29997 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_browser_actions_api.h')
-rw-r--r-- | chrome/browser/extensions/extension_browser_actions_api.h | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/chrome/browser/extensions/extension_browser_actions_api.h b/chrome/browser/extensions/extension_browser_actions_api.h index 8d92b8a..3b6d768 100644 --- a/chrome/browser/extensions/extension_browser_actions_api.h +++ b/chrome/browser/extensions/extension_browser_actions_api.h @@ -6,25 +6,47 @@ #define CHROME_BROWSER_EXTENSIONS_EXTENSION_BROWSER_ACTIONS_API_H_ #include "chrome/browser/extensions/extension_function.h" +#include "chrome/common/extensions/extension_action2.h" -class BrowserActionSetIconFunction : public SyncExtensionFunction { +class ExtensionAction; +class ExtensionActionState; + +class BrowserActionFunction : public SyncExtensionFunction { + protected: + BrowserActionFunction() : tab_id_(ExtensionAction2::kDefaultTabId) {} virtual bool RunImpl(); + virtual bool RunBrowserAction() = 0; + + // All the browser action APIs take a single argument called details that is + // a dictionary. + DictionaryValue* details_; + + // The tab id the browser action function should apply to, if any, or + // kDefaultTabId if none was specified. + int tab_id_; + + // The browser action for the current extension. + ExtensionAction2* browser_action_; +}; + +class BrowserActionSetIconFunction : public BrowserActionFunction { + virtual bool RunBrowserAction(); DECLARE_EXTENSION_FUNCTION_NAME("browserAction.setIcon") }; -class BrowserActionSetTitleFunction : public SyncExtensionFunction { - virtual bool RunImpl(); +class BrowserActionSetTitleFunction : public BrowserActionFunction { + virtual bool RunBrowserAction(); DECLARE_EXTENSION_FUNCTION_NAME("browserAction.setTitle") }; -class BrowserActionSetBadgeTextFunction : public SyncExtensionFunction { - virtual bool RunImpl(); +class BrowserActionSetBadgeTextFunction : public BrowserActionFunction { + virtual bool RunBrowserAction(); DECLARE_EXTENSION_FUNCTION_NAME("browserAction.setBadgeText") }; class BrowserActionSetBadgeBackgroundColorFunction - : public SyncExtensionFunction { - virtual bool RunImpl(); + : public BrowserActionFunction { + virtual bool RunBrowserAction(); DECLARE_EXTENSION_FUNCTION_NAME("browserAction.setBadgeBackgroundColor") }; |