Index: chrome/browser/extensions/api/commands/extension_command_service.h |
=================================================================== |
--- chrome/browser/extensions/api/commands/extension_command_service.h (revision 138124) |
+++ chrome/browser/extensions/api/commands/extension_command_service.h (working copy) |
@@ -20,16 +20,29 @@ |
class PrefService; |
class Profile; |
+namespace base { |
+ class DictionaryValue; |
+} |
+ |
namespace ui { |
class Accelerator; |
} |
+namespace extensions { |
+ |
// This service keeps track of preferences related to extension commands |
// (assigning initial keybindings on install and removing them on deletion |
// and answers questions related to which commands are active. |
class ExtensionCommandService : public ProfileKeyedService, |
public content::NotificationObserver { |
public: |
+ // An enum specifying whether to fetch all extension commands or only active |
+ // ones. |
+ enum QueryType { |
+ ALL, |
+ ACTIVE_ONLY, |
+ }; |
+ |
// Register prefs for keybinding. |
static void RegisterUserPrefs(PrefService* user_prefs); |
@@ -37,33 +50,36 @@ |
explicit ExtensionCommandService(Profile* profile); |
virtual ~ExtensionCommandService(); |
- // Gets the active keybinding (if any) for the browser action of an extension |
- // given its |extension_id|. The function consults the master list to see if |
+ // Gets the keybinding (if any) for the browser action of an extension given |
+ // its |extension_id|. The function consults the master list to see if |
// the keybinding is active. Returns NULL if the extension has no browser |
- // action or no active keybinding for it. |
- const extensions::Command* GetActiveBrowserActionCommand( |
- const std::string& extension_id); |
+ // action. Returns NULL if the keybinding is not active and |type| requested |
+ // is ACTIVE_ONLY. |
+ const extensions::Command* GetBrowserActionCommand( |
+ const std::string& extension_id, QueryType type); |
- // Gets the active keybinding (if any) for the page action of an extension |
- // given its |extension_id|. The function consults the master list to see if |
- // the keybinding is active. Returns NULL if the extension has no page action |
- // or no active keybinding for it. |
- const extensions::Command* GetActivePageActionCommand( |
- const std::string& extension_id); |
+ // Gets the keybinding (if any) for the page action of an extension given |
+ // its |extension_id|. The function consults the master list to see if |
+ // the keybinding is active. Returns NULL if the extension has no page |
+ // action. Returns NULL if the keybinding is not active and |type| requested |
+ // is ACTIVE_ONLY. |
+ const extensions::Command* GetPageActionCommand( |
+ const std::string& extension_id, QueryType type); |
// Gets the active keybinding (if any) for the named commands of an extension |
// given its |extension_id|. The function consults the master list to see if |
// the keybinding is active. Returns an empty map if the extension has no |
- // named commands or no active keybinding for the commands. |
- extensions::CommandMap GetActiveNamedCommands( |
- const std::string& extension_id); |
+ // named commands or no active named commands when |type| requested is |
+ // ACTIVE_ONLY. |
+ extensions::CommandMap GetNamedCommands( |
+ const std::string& extension_id, QueryType type); |
// Checks to see if a keybinding |accelerator| for a given |command_name| in |
// an extension with id |extension_id| is registered as active (by consulting |
// the master list in |user_prefs|). |
bool IsKeybindingActive(const ui::Accelerator& accelerator, |
- std::string extension_id, |
- std::string command_name); |
+ const std::string& extension_id, |
+ const std::string& command_name) const; |
// Records a keybinding |accelerator| as active for an extension with id |
// |extension_id| and command with the name |command_name|. If |
@@ -102,4 +118,6 @@ |
DISALLOW_COPY_AND_ASSIGN(ExtensionCommandService); |
}; |
+} // namespace extensions |
+ |
#endif // CHROME_BROWSER_EXTENSIONS_API_COMMANDS_EXTENSION_COMMAND_SERVICE_H_ |