Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Unified Diff: chrome/browser/extensions/extension_keybinding_registry.cc

Issue 788973002: Observe OnExtensionLoaded to trigger update of chrome.commands keybindings for component extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update comment. Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/api/commands/command_service.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(
« no previous file with comments | « chrome/browser/extensions/api/commands/command_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698