Index: chrome/browser/ui/views/frame/browser_view.cc |
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc |
index 5339809471f2b05aeb33fb80c0354ed45c98710c..1cdeb05026fec0b4de41d8cfb80c8ef9d1862e94 100644 |
--- a/chrome/browser/ui/views/frame/browser_view.cc |
+++ b/chrome/browser/ui/views/frame/browser_view.cc |
@@ -2009,6 +2009,9 @@ bool BrowserView::AcceleratorPressed(const ui::Accelerator& accelerator) { |
DCHECK(iter != accelerator_table_.end()); |
int command_id = iter->second; |
+ if (accelerator.IsRepeat() && !repeatable_command_ids_.count(command_id)) |
+ return false; |
+ |
chrome::BrowserCommandController* controller = browser_->command_controller(); |
if (!controller->block_command_execution()) |
UpdateAcceleratorMetrics(accelerator, command_id); |
@@ -2398,6 +2401,10 @@ void BrowserView::LoadAccelerators() { |
focus_manager->RegisterAccelerator( |
accelerator, ui::AcceleratorManager::kNormalPriority, this); |
} |
+ |
+ const std::vector<int> command_ids(chrome::GetRepeatableCommandIds()); |
+ repeatable_command_ids_ = |
+ std::set<int>(command_ids.begin(), command_ids.end()); |
} |
int BrowserView::GetCommandIDForAppCommandID(int app_command_id) const { |