| 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..d0fb3daeee0fdc768d7c5254e98ee47fe8180de5 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"
|
|
|
| @@ -54,15 +54,13 @@ void ExtensionKeybindingRegistryViews::AddExtensionKeybinding(
|
| for (; iter != commands.end(); ++iter) {
|
| if (!command_name.empty() && (iter->second.command_name() != command_name))
|
| continue;
|
| - if (!IsAcceleratorRegistered(iter->second.accelerator())) {
|
| - focus_manager_->RegisterAccelerator(iter->second.accelerator(),
|
| - ui::AcceleratorManager::kHighPriority,
|
| - this);
|
| + const ui::Accelerator &accelerator = iter->second.accelerator();
|
| + if (!IsAcceleratorRegistered(accelerator)) {
|
| + focus_manager_->RegisterAccelerator(
|
| + accelerator, GetAcceleratorPriority(accelerator, extension), this);
|
| }
|
|
|
| - AddEventTarget(iter->second.accelerator(),
|
| - extension->id(),
|
| - iter->second.command_name());
|
| + AddEventTarget(accelerator, extension->id(), iter->second.command_name());
|
| }
|
| }
|
|
|
| @@ -74,7 +72,14 @@ void ExtensionKeybindingRegistryViews::RemoveExtensionKeybindingImpl(
|
|
|
| bool ExtensionKeybindingRegistryViews::AcceleratorPressed(
|
| const ui::Accelerator& accelerator) {
|
| - return ExtensionKeybindingRegistry::NotifyEventTargets(accelerator);
|
| + std::string extension_id, command_name;
|
| + GetFirstTarget(accelerator, &extension_id, &command_name);
|
| + const ui::AcceleratorManager::HandlerPriority priority =
|
| + GetAcceleratorPriorityById(accelerator, extension_id, browser_context());
|
| + // Normal priority shortcuts must be handled via standard browser commands to
|
| + // be processed at the proper time.
|
| + return (priority == ui::AcceleratorManager::kHighPriority) &&
|
| + ExtensionKeybindingRegistry::NotifyEventTargets(accelerator);
|
| }
|
|
|
| bool ExtensionKeybindingRegistryViews::CanHandleAccelerators() const {
|
|
|