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 3b239420ad39666d9dedf6be153d756104c48c69..22837a82a1b36a0831e0030efa77d2e29a56bb8c 100644 |
--- a/chrome/browser/extensions/extension_keybinding_registry.cc |
+++ b/chrome/browser/extensions/extension_keybinding_registry.cc |
@@ -197,10 +197,17 @@ void ExtensionKeybindingRegistry::Observe( |
return; |
if (ExtensionMatchesFilter(extension)) { |
- if (type == extensions::NOTIFICATION_EXTENSION_COMMAND_ADDED) |
+ if (type == extensions::NOTIFICATION_EXTENSION_COMMAND_ADDED) { |
+ // Component extensions triggers OnExtensionLoaded for extension |
+ // installs as well as loads. This can cause adding of multiple key |
+ // targets. |
+ if (extension->location() == Manifest::COMPONENT) |
+ return; |
+ |
AddExtensionKeybindings(extension, payload->command_name); |
- else |
+ } else { |
RemoveExtensionKeybinding(extension, payload->command_name); |
+ } |
} |
break; |
} |