Chromium Code Reviews| 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 dae15fd8b0561f973cf6181f7880a041c2bd3566..2ba2e94f4f36e1b64d031448591b5326511776a1 100644 |
| --- a/chrome/browser/extensions/extension_keybinding_registry.cc |
| +++ b/chrome/browser/extensions/extension_keybinding_registry.cc |
| @@ -130,12 +130,23 @@ void ExtensionKeybindingRegistry::AddEventTarget( |
| const ui::Accelerator& accelerator, |
| const std::string& extension_id, |
| const std::string& command_name) { |
| - event_targets_[accelerator].push_back( |
| - std::make_pair(extension_id, command_name)); |
| // Shortcuts except media keys have only one target in the list. See comment |
| // about |event_targets_|. |
| - if (!extensions::Command::IsMediaKey(accelerator)) |
| - DCHECK_EQ(1u, event_targets_[accelerator].size()); |
| + if (!extensions::Command::IsMediaKey(accelerator) && |
| + ((event_targets_[accelerator].size() == 1 && |
| + !event_targets_[accelerator].begin()->second.empty() && |
| + event_targets_[accelerator].begin()->second != command_name) || |
| + event_targets_[accelerator].size() > 1)) |
| + NOTREACHED(); |
| + |
| + // No need to add the same command again if not a media key. |
| + if (!extensions::Command::IsMediaKey(accelerator) && |
| + event_targets_[accelerator].size() > 0 && |
| + event_targets_[accelerator].begin()->second == command_name) |
| + return; |
|
Finnur
2014/12/19 15:26:52
Hmm... I'm not sure I like all this. I'm sure it g
David Tseng
2014/12/19 19:41:01
I was seeing multiple event targets getting added,
Finnur
2014/12/22 15:20:08
My recommendation would be to revert back to the s
|
| + |
| + event_targets_[accelerator].push_back( |
| + std::make_pair(extension_id, command_name)); |
| } |
| bool ExtensionKeybindingRegistry::GetFirstTarget( |