OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/views/frame/browser_view.h" | 5 #include "chrome/browser/ui/views/frame/browser_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 #include "chrome/browser/profiles/avatar_menu_model.h" | 26 #include "chrome/browser/profiles/avatar_menu_model.h" |
27 #include "chrome/browser/profiles/profile.h" | 27 #include "chrome/browser/profiles/profile.h" |
28 #include "chrome/browser/profiles/profile_info_cache.h" | 28 #include "chrome/browser/profiles/profile_info_cache.h" |
29 #include "chrome/browser/profiles/profile_manager.h" | 29 #include "chrome/browser/profiles/profile_manager.h" |
30 #include "chrome/browser/sessions/tab_restore_service.h" | 30 #include "chrome/browser/sessions/tab_restore_service.h" |
31 #include "chrome/browser/sessions/tab_restore_service_factory.h" | 31 #include "chrome/browser/sessions/tab_restore_service_factory.h" |
32 #include "chrome/browser/speech/extension_api/tts_extension_api.h" | 32 #include "chrome/browser/speech/extension_api/tts_extension_api.h" |
33 #include "chrome/browser/themes/theme_service.h" | 33 #include "chrome/browser/themes/theme_service.h" |
34 #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h" | 34 #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h" |
35 #include "chrome/browser/ui/browser.h" | 35 #include "chrome/browser/ui/browser.h" |
| 36 #include "chrome/browser/ui/browser_command_controller.h" |
| 37 #include "chrome/browser/ui/browser_commands.h" |
36 #include "chrome/browser/ui/browser_dialogs.h" | 38 #include "chrome/browser/ui/browser_dialogs.h" |
37 #include "chrome/browser/ui/browser_list.h" | 39 #include "chrome/browser/ui/browser_list.h" |
38 #include "chrome/browser/ui/browser_window_state.h" | 40 #include "chrome/browser/ui/browser_window_state.h" |
39 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" | 41 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" |
40 #include "chrome/browser/ui/omnibox/omnibox_popup_view.h" | 42 #include "chrome/browser/ui/omnibox/omnibox_popup_view.h" |
41 #include "chrome/browser/ui/omnibox/omnibox_view.h" | 43 #include "chrome/browser/ui/omnibox/omnibox_view.h" |
42 #include "chrome/browser/ui/search/search.h" | 44 #include "chrome/browser/ui/search/search.h" |
43 #include "chrome/browser/ui/tab_contents/tab_contents.h" | 45 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
44 #include "chrome/browser/ui/tabs/tab_menu_model.h" | 46 #include "chrome/browser/ui/tabs/tab_menu_model.h" |
45 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 47 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 ExtensionTtsController::GetInstance()->Stop(); | 470 ExtensionTtsController::GetInstance()->Stop(); |
469 return false; | 471 return false; |
470 } | 472 } |
471 #endif | 473 #endif |
472 | 474 |
473 std::map<ui::Accelerator, int>::const_iterator iter = | 475 std::map<ui::Accelerator, int>::const_iterator iter = |
474 accelerator_table_.find(accelerator); | 476 accelerator_table_.find(accelerator); |
475 DCHECK(iter != accelerator_table_.end()); | 477 DCHECK(iter != accelerator_table_.end()); |
476 int command_id = iter->second; | 478 int command_id = iter->second; |
477 | 479 |
478 if (!browser_->block_command_execution()) | 480 chrome::BrowserCommandController* controller = browser_->command_controller(); |
| 481 if (!controller->block_command_execution()) |
479 UpdateAcceleratorMetrics(accelerator, command_id); | 482 UpdateAcceleratorMetrics(accelerator, command_id); |
480 return browser_->ExecuteCommandIfEnabled(command_id); | 483 return chrome::ExecuteCommand(browser_.get(), command_id); |
481 } | 484 } |
482 | 485 |
483 bool BrowserView::GetAccelerator(int cmd_id, ui::Accelerator* accelerator) { | 486 bool BrowserView::GetAccelerator(int cmd_id, ui::Accelerator* accelerator) { |
484 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators | 487 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators |
485 // anywhere so we need to check for them explicitly here. | 488 // anywhere so we need to check for them explicitly here. |
486 switch (cmd_id) { | 489 switch (cmd_id) { |
487 case IDC_CUT: | 490 case IDC_CUT: |
488 *accelerator = ui::Accelerator(ui::VKEY_X, ui::EF_CONTROL_DOWN); | 491 *accelerator = ui::Accelerator(ui::VKEY_X, ui::EF_CONTROL_DOWN); |
489 return true; | 492 return true; |
490 case IDC_COPY: | 493 case IDC_COPY: |
(...skipping 733 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1224 // - If the |browser_| is not for an app, and the |accelerator| is associated | 1227 // - If the |browser_| is not for an app, and the |accelerator| is associated |
1225 // with the browser, and it is not a reserved one, do nothing. | 1228 // with the browser, and it is not a reserved one, do nothing. |
1226 | 1229 |
1227 if (browser_->is_app()) { | 1230 if (browser_->is_app()) { |
1228 // We don't have to flip |is_keyboard_shortcut| here. If we do that, the app | 1231 // We don't have to flip |is_keyboard_shortcut| here. If we do that, the app |
1229 // might not be able to see a subsequent Char event. See OnHandleInputEvent | 1232 // might not be able to see a subsequent Char event. See OnHandleInputEvent |
1230 // in content/renderer/render_widget.cc for details. | 1233 // in content/renderer/render_widget.cc for details. |
1231 return false; | 1234 return false; |
1232 } | 1235 } |
1233 | 1236 |
| 1237 chrome::BrowserCommandController* controller = browser_->command_controller(); |
| 1238 |
1234 // Here we need to retrieve the command id (if any) associated to the | 1239 // Here we need to retrieve the command id (if any) associated to the |
1235 // keyboard event. Instead of looking up the command id in the | 1240 // keyboard event. Instead of looking up the command id in the |
1236 // |accelerator_table_| by ourselves, we block the command execution of | 1241 // |accelerator_table_| by ourselves, we block the command execution of |
1237 // the |browser_| object then send the keyboard event to the | 1242 // the |browser_| object then send the keyboard event to the |
1238 // |focus_manager| as if we are activating an accelerator key. | 1243 // |focus_manager| as if we are activating an accelerator key. |
1239 // Then we can retrieve the command id from the |browser_| object. | 1244 // Then we can retrieve the command id from the |browser_| object. |
1240 browser_->SetBlockCommandExecution(true); | 1245 controller->SetBlockCommandExecution(true); |
1241 // If the |accelerator| is a non-browser shortcut (e.g. Ash shortcut), the | 1246 // If the |accelerator| is a non-browser shortcut (e.g. Ash shortcut), the |
1242 // command execution cannot be blocked and true is returned. However, it is | 1247 // command execution cannot be blocked and true is returned. However, it is |
1243 // okay as long as is_app() is false. See comments in this function. | 1248 // okay as long as is_app() is false. See comments in this function. |
1244 const bool processed = focus_manager->ProcessAccelerator(accelerator); | 1249 const bool processed = focus_manager->ProcessAccelerator(accelerator); |
1245 const int id = browser_->GetLastBlockedCommand(NULL); | 1250 const int id = controller->GetLastBlockedCommand(NULL); |
1246 browser_->SetBlockCommandExecution(false); | 1251 controller->SetBlockCommandExecution(false); |
1247 | 1252 |
1248 // Executing the command may cause |this| object to be destroyed. | 1253 // Executing the command may cause |this| object to be destroyed. |
1249 if (browser_->IsReservedCommandOrKey(id, event)) { | 1254 if (controller->IsReservedCommandOrKey(id, event)) { |
1250 UpdateAcceleratorMetrics(accelerator, id); | 1255 UpdateAcceleratorMetrics(accelerator, id); |
1251 return browser_->ExecuteCommandIfEnabled(id); | 1256 return chrome::ExecuteCommand(browser_.get(), id); |
1252 } | 1257 } |
1253 | 1258 |
1254 if (id != -1) { | 1259 if (id != -1) { |
1255 // |accelerator| is a non-reserved browser shortcut (e.g. Ctrl+t). | 1260 // |accelerator| is a non-reserved browser shortcut (e.g. Ctrl+t). |
1256 if (event.type == WebKit::WebInputEvent::RawKeyDown) | 1261 if (event.type == WebKit::WebInputEvent::RawKeyDown) |
1257 *is_keyboard_shortcut = true; | 1262 *is_keyboard_shortcut = true; |
1258 } else if (processed) { | 1263 } else if (processed) { |
1259 // |accelerator| is a non-browser shortcut (e.g. F5-F10 on Ash). | 1264 // |accelerator| is a non-browser shortcut (e.g. F5-F10 on Ash). |
1260 return true; | 1265 return true; |
1261 } | 1266 } |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1515 ((command_id & sc_mask) == SC_MAXIMIZE)) | 1520 ((command_id & sc_mask) == SC_MAXIMIZE)) |
1516 return true; | 1521 return true; |
1517 } | 1522 } |
1518 #endif | 1523 #endif |
1519 // Translate WM_APPCOMMAND command ids into a command id that the browser | 1524 // Translate WM_APPCOMMAND command ids into a command id that the browser |
1520 // knows how to handle. | 1525 // knows how to handle. |
1521 int command_id_from_app_command = GetCommandIDForAppCommandID(command_id); | 1526 int command_id_from_app_command = GetCommandIDForAppCommandID(command_id); |
1522 if (command_id_from_app_command != -1) | 1527 if (command_id_from_app_command != -1) |
1523 command_id = command_id_from_app_command; | 1528 command_id = command_id_from_app_command; |
1524 | 1529 |
1525 return browser_->ExecuteCommandIfEnabled(command_id); | 1530 return chrome::ExecuteCommand(browser_.get(), command_id); |
1526 } | 1531 } |
1527 | 1532 |
1528 std::string BrowserView::GetWindowName() const { | 1533 std::string BrowserView::GetWindowName() const { |
1529 return chrome::GetWindowPlacementKey(browser_.get()); | 1534 return chrome::GetWindowPlacementKey(browser_.get()); |
1530 } | 1535 } |
1531 | 1536 |
1532 void BrowserView::SaveWindowPlacement(const gfx::Rect& bounds, | 1537 void BrowserView::SaveWindowPlacement(const gfx::Rect& bounds, |
1533 ui::WindowShowState show_state) { | 1538 ui::WindowShowState show_state) { |
1534 // If IsFullscreen() is true, we've just changed into fullscreen mode, and | 1539 // If IsFullscreen() is true, we've just changed into fullscreen mode, and |
1535 // we're catching the going-into-fullscreen sizing and positioning calls, | 1540 // we're catching the going-into-fullscreen sizing and positioning calls, |
(...skipping 976 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2512 bubble->Show(); | 2517 bubble->Show(); |
2513 } | 2518 } |
2514 | 2519 |
2515 void BrowserView::RestackLocationBarContainer() { | 2520 void BrowserView::RestackLocationBarContainer() { |
2516 #if defined(USE_AURA) | 2521 #if defined(USE_AURA) |
2517 if (search_view_controller_.get()) | 2522 if (search_view_controller_.get()) |
2518 search_view_controller_->StackAtTop(); | 2523 search_view_controller_->StackAtTop(); |
2519 #endif | 2524 #endif |
2520 toolbar_->location_bar_container()->StackAtTop(); | 2525 toolbar_->location_bar_container()->StackAtTop(); |
2521 } | 2526 } |
OLD | NEW |