• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_BROWSER_ACTIONS_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_BROWSER_ACTIONS_API_H_
7 #pragma once
8 
9 #include "chrome/browser/extensions/extension_function.h"
10 #include "chrome/common/extensions/extension_action.h"
11 
12 class DictionaryValue;
13 class ExtensionAction;
14 
15 // Base class for chrome.browserAction.* APIs.
16 class BrowserActionFunction : public SyncExtensionFunction {
17  protected:
BrowserActionFunction()18   BrowserActionFunction()
19       : details_(NULL),
20         tab_id_(ExtensionAction::kDefaultTabId),
21         browser_action_(NULL) {}
~BrowserActionFunction()22   virtual ~BrowserActionFunction() {}
23   virtual bool RunImpl();
24   virtual bool RunBrowserAction() = 0;
25 
26   // All the browser action APIs take a single argument called details that is
27   // a dictionary.
28   DictionaryValue* details_;
29 
30   // The tab id the browser action function should apply to, if any, or
31   // kDefaultTabId if none was specified.
32   int tab_id_;
33 
34   // The browser action for the current extension.
35   ExtensionAction* browser_action_;
36 };
37 
38 // Implement chrome.browserAction.setIcon().
39 class BrowserActionSetIconFunction : public BrowserActionFunction {
~BrowserActionSetIconFunction()40   ~BrowserActionSetIconFunction() {}
41   virtual bool RunBrowserAction();
42   DECLARE_EXTENSION_FUNCTION_NAME("browserAction.setIcon")
43 };
44 
45 // Implement chrome.browserAction.setTitle().
46 class BrowserActionSetTitleFunction : public BrowserActionFunction {
~BrowserActionSetTitleFunction()47   ~BrowserActionSetTitleFunction() {}
48   virtual bool RunBrowserAction();
49   DECLARE_EXTENSION_FUNCTION_NAME("browserAction.setTitle")
50 };
51 
52 // Implement chrome.browserActions.setPopup().
53 class BrowserActionSetPopupFunction : public BrowserActionFunction {
~BrowserActionSetPopupFunction()54   ~BrowserActionSetPopupFunction() {}
55   virtual bool RunBrowserAction();
56   DECLARE_EXTENSION_FUNCTION_NAME("browserAction.setPopup")
57 };
58 
59 // Implement chrome.browserAction.setBadgeText().
60 class BrowserActionSetBadgeTextFunction : public BrowserActionFunction {
~BrowserActionSetBadgeTextFunction()61   ~BrowserActionSetBadgeTextFunction() {}
62   virtual bool RunBrowserAction();
63   DECLARE_EXTENSION_FUNCTION_NAME("browserAction.setBadgeText")
64 };
65 
66 // Implement chrome.browserAction.setBadgeBackgroundColor().
67 class BrowserActionSetBadgeBackgroundColorFunction
68     : public BrowserActionFunction {
~BrowserActionSetBadgeBackgroundColorFunction()69   ~BrowserActionSetBadgeBackgroundColorFunction() {}
70   virtual bool RunBrowserAction();
71   DECLARE_EXTENSION_FUNCTION_NAME("browserAction.setBadgeBackgroundColor")
72 };
73 
74 #endif  // CHROME_BROWSER_EXTENSIONS_EXTENSION_BROWSER_ACTIONS_API_H_
75