Index: chrome/browser/extensions/extension_keybinding_registry.cc |
diff --git a/chrome/browser/extensions/extension_keybinding_registry.cc b/chrome/browser/extensions/extension_keybinding_registry.cc |
index 86b9116d0b1fb951c3886dc36f0df7c98b74269f..3768a5ccc486d747dca0c3b90f7b4db360f76399 100644 |
--- a/chrome/browser/extensions/extension_keybinding_registry.cc |
+++ b/chrome/browser/extensions/extension_keybinding_registry.cc |
@@ -17,6 +17,10 @@ |
#include "extensions/common/extension_set.h" |
#include "extensions/common/manifest_constants.h" |
+namespace { |
+const char kCommandsOnCommandEventName[] = "commands.onCommand"; |
Finnur
2014/08/28 11:15:39
nit: Why not simply kOnCommandEventName or kComman
David Tseng
2014/08/28 23:37:11
Done. (Was trying to follow the "new" format gener
Finnur
2014/08/29 12:17:00
Do we do that elsewhere?
David Tseng
2014/08/29 17:18:45
Not sure what you mean; an example is location::On
|
+} // namespace |
+ |
namespace extensions { |
ExtensionKeybindingRegistry::ExtensionKeybindingRegistry( |
@@ -115,7 +119,7 @@ void ExtensionKeybindingRegistry::CommandExecuted( |
scoped_ptr<base::ListValue> args(new base::ListValue()); |
args->Append(new base::StringValue(command)); |
- scoped_ptr<Event> event(new Event("commands.onCommand", args.Pass())); |
+ scoped_ptr<Event> event(new Event(kCommandsOnCommandEventName, args.Pass())); |
event->restrict_to_browser_context = browser_context_; |
event->user_gesture = EventRouter::USER_GESTURE_ENABLED; |
EventRouter::Get(browser_context_) |
@@ -234,6 +238,12 @@ bool ExtensionKeybindingRegistry::ExecuteCommands( |
if (targets == event_targets_.end() || targets->second.empty()) |
return false; |
+ if (!extension_id.empty() && |
+ !extensions::EventRouter::Get(browser_context_) |
+ ->ExtensionHasEventListener(extension_id, |
+ kCommandsOnCommandEventName)) |
+ return false; |
+ |
bool executed = false; |
for (TargetList::const_iterator it = targets->second.begin(); |
it != targets->second.end(); it++) { |