| Index: chrome/browser/extensions/api/commands/command_service.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/api/commands/command_service.cc (revision 149159)
|
| +++ chrome/browser/extensions/api/commands/command_service.cc (working copy)
|
| @@ -57,7 +57,8 @@
|
| QueryType type,
|
| extensions::Command* command,
|
| bool* active) {
|
| - return GetExtensionActionCommand(extension_id, type, command, active, true);
|
| + return GetExtensionActionCommand(
|
| + extension_id, type, command, active, BROWSER_ACTION);
|
| }
|
|
|
| bool CommandService::GetPageActionCommand(
|
| @@ -65,9 +66,19 @@
|
| QueryType type,
|
| extensions::Command* command,
|
| bool* active) {
|
| - return GetExtensionActionCommand(extension_id, type, command, active, false);
|
| + return GetExtensionActionCommand(
|
| + extension_id, type, command, active, PAGE_ACTION);
|
| }
|
|
|
| +bool CommandService::GetScriptBadgeCommand(
|
| + const std::string& extension_id,
|
| + QueryType type,
|
| + extensions::Command* command,
|
| + bool* active) {
|
| + return GetExtensionActionCommand(
|
| + extension_id, type, command, active, SCRIPT_BADGE);
|
| +}
|
| +
|
| bool CommandService::GetNamedCommands(const std::string& extension_id,
|
| QueryType type,
|
| extensions::CommandMap* command_map) {
|
| @@ -219,6 +230,15 @@
|
| page_action_command->command_name(),
|
| false); // Overwriting not allowed.
|
| }
|
| +
|
| + const extensions::Command* script_badge_command =
|
| + extension->script_badge_command();
|
| + if (script_badge_command) {
|
| + AddKeybindingPref(script_badge_command->accelerator(),
|
| + extension->id(),
|
| + script_badge_command->command_name(),
|
| + false); // Overwriting not allowed.
|
| + }
|
| }
|
|
|
| void CommandService::RemoveKeybindingPrefs(const std::string& extension_id,
|
| @@ -267,11 +287,12 @@
|
| }
|
| }
|
|
|
| -bool CommandService::GetExtensionActionCommand(const std::string& extension_id,
|
| - QueryType type,
|
| - extensions::Command* command,
|
| - bool* active,
|
| - bool browser_action) {
|
| +bool CommandService::GetExtensionActionCommand(
|
| + const std::string& extension_id,
|
| + QueryType query_type,
|
| + extensions::Command* command,
|
| + bool* active,
|
| + ExtensionActionType action_type) {
|
| const ExtensionSet* extensions =
|
| ExtensionSystem::Get(profile_)->extension_service()->extensions();
|
| const Extension* extension = extensions->GetByID(extension_id);
|
| @@ -280,9 +301,18 @@
|
| if (active)
|
| *active = false;
|
|
|
| - const extensions::Command* requested_command =
|
| - browser_action ? extension->browser_action_command() :
|
| - extension->page_action_command();
|
| + const extensions::Command* requested_command = NULL;
|
| + switch (action_type) {
|
| + case BROWSER_ACTION:
|
| + requested_command = extension->browser_action_command();
|
| + break;
|
| + case PAGE_ACTION:
|
| + requested_command = extension->page_action_command();
|
| + break;
|
| + case SCRIPT_BADGE:
|
| + requested_command = extension->script_badge_command();
|
| + break;
|
| + }
|
| if (!requested_command)
|
| return false;
|
|
|
| @@ -292,7 +322,8 @@
|
| if (active)
|
| *active = (shortcut_assigned.key_code() != ui::VKEY_UNKNOWN);
|
|
|
| - if (type == ACTIVE_ONLY && shortcut_assigned.key_code() == ui::VKEY_UNKNOWN)
|
| + if (query_type == ACTIVE_ONLY &&
|
| + shortcut_assigned.key_code() == ui::VKEY_UNKNOWN)
|
| return false;
|
|
|
| *command = *requested_command;
|
|
|