summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_browser_actions_api.h
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-24 04:35:08 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-24 04:35:08 +0000
commit92c6f9b9eac950c487f580709e3aab03843d15bc (patch)
tree4f25ceede36cf3655de577a48281910752f67262 /chrome/browser/extensions/extension_browser_actions_api.h
parent20ee7a74a7587986ed5db9b13aac2a78a5f0bdfc (diff)
downloadchromium_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.h36
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")
};