Index: chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc |
diff --git a/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc b/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc |
index 477a08eeb4064ccb8a8040dd4fa304900f409b36..96b89f9f4434e606121e05f1ed7362753f318c35 100644 |
--- a/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc |
+++ b/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc |
@@ -6,8 +6,8 @@ |
#include "chrome/browser/extensions/api/commands/command_service.h" |
#include "chrome/browser/extensions/extension_keybinding_registry.h" |
-#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/ui/extensions/accelerator_priority.h" |
#include "extensions/common/extension.h" |
#include "ui/views/focus/focus_manager.h" |
@@ -56,7 +56,9 @@ void ExtensionKeybindingRegistryViews::AddExtensionKeybinding( |
continue; |
if (!IsAcceleratorRegistered(iter->second.accelerator())) { |
focus_manager_->RegisterAccelerator(iter->second.accelerator(), |
- ui::AcceleratorManager::kHighPriority, |
+ GetAcceleratorPriority( |
+ iter->second.accelerator(), |
+ extension), |
this); |
} |
@@ -74,6 +76,14 @@ void ExtensionKeybindingRegistryViews::RemoveExtensionKeybindingImpl( |
bool ExtensionKeybindingRegistryViews::AcceleratorPressed( |
const ui::Accelerator& accelerator) { |
+ std::string extension_id, command_name; |
+ GetFirstTarget(accelerator, &extension_id, &command_name); |
+ // Normal priority shortcuts must be handled via the standard browser command |
+ // processing to be effective. |
+ if (GetAcceleratorPriority(accelerator, extension_id, browser_context()) == |
+ ui::AcceleratorManager::kNormalPriority) |
+ return false; |
+ |
return ExtensionKeybindingRegistry::NotifyEventTargets(accelerator); |
} |