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

Side by Side Diff: ash/common/accelerators/accelerator_controller.cc

Issue 2734933004: ash: Use SessionController instead of SessionStateDelegate (Closed)
Patch Set: rebase to get WorkspaceLayoutManagerSoloTest change Created 3 years, 9 months 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 unified diff | Download patch
OLDNEW
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 "ash/common/accelerators/accelerator_controller.h" 5 #include "ash/common/accelerators/accelerator_controller.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "ash/common/accelerators/accelerator_commands.h" 9 #include "ash/common/accelerators/accelerator_commands.h"
10 #include "ash/common/accelerators/accelerator_controller_delegate.h" 10 #include "ash/common/accelerators/accelerator_controller_delegate.h"
11 #include "ash/common/accelerators/debug_commands.h" 11 #include "ash/common/accelerators/debug_commands.h"
12 #include "ash/common/accessibility_delegate.h" 12 #include "ash/common/accessibility_delegate.h"
13 #include "ash/common/accessibility_types.h" 13 #include "ash/common/accessibility_types.h"
14 #include "ash/common/focus_cycler.h" 14 #include "ash/common/focus_cycler.h"
15 #include "ash/common/ime_control_delegate.h" 15 #include "ash/common/ime_control_delegate.h"
16 #include "ash/common/media_controller.h" 16 #include "ash/common/media_controller.h"
17 #include "ash/common/multi_profile_uma.h" 17 #include "ash/common/multi_profile_uma.h"
18 #include "ash/common/new_window_controller.h" 18 #include "ash/common/new_window_controller.h"
19 #include "ash/common/palette_delegate.h" 19 #include "ash/common/palette_delegate.h"
20 #include "ash/common/session/session_state_delegate.h" 20 #include "ash/common/session/session_controller.h"
21 #include "ash/common/shelf/shelf_widget.h" 21 #include "ash/common/shelf/shelf_widget.h"
22 #include "ash/common/shelf/wm_shelf.h" 22 #include "ash/common/shelf/wm_shelf.h"
23 #include "ash/common/shell_delegate.h" 23 #include "ash/common/shell_delegate.h"
24 #include "ash/common/system/brightness_control_delegate.h" 24 #include "ash/common/system/brightness_control_delegate.h"
25 #include "ash/common/system/chromeos/ime_menu/ime_menu_tray.h" 25 #include "ash/common/system/chromeos/ime_menu/ime_menu_tray.h"
26 #include "ash/common/system/chromeos/palette/palette_tray.h" 26 #include "ash/common/system/chromeos/palette/palette_tray.h"
27 #include "ash/common/system/chromeos/palette/palette_utils.h" 27 #include "ash/common/system/chromeos/palette/palette_utils.h"
28 #include "ash/common/system/keyboard_brightness_control_delegate.h" 28 #include "ash/common/system/keyboard_brightness_control_delegate.h"
29 #include "ash/common/system/status_area_widget.h" 29 #include "ash/common/system/status_area_widget.h"
30 #include "ash/common/system/system_notifier.h" 30 #include "ash/common/system/system_notifier.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 // help page when the notification is clicked. 78 // help page when the notification is clicked.
79 class DeprecatedAcceleratorNotificationDelegate 79 class DeprecatedAcceleratorNotificationDelegate
80 : public message_center::NotificationDelegate { 80 : public message_center::NotificationDelegate {
81 public: 81 public:
82 DeprecatedAcceleratorNotificationDelegate() {} 82 DeprecatedAcceleratorNotificationDelegate() {}
83 83
84 // message_center::NotificationDelegate: 84 // message_center::NotificationDelegate:
85 bool HasClickedListener() override { return true; } 85 bool HasClickedListener() override { return true; }
86 86
87 void Click() override { 87 void Click() override {
88 if (!WmShell::Get()->GetSessionStateDelegate()->IsUserSessionBlocked()) 88 if (!WmShell::Get()->session_controller()->IsUserSessionBlocked())
89 Shell::Get()->shell_delegate()->OpenKeyboardShortcutHelpPage(); 89 Shell::Get()->shell_delegate()->OpenKeyboardShortcutHelpPage();
90 } 90 }
91 91
92 private: 92 private:
93 // Private destructor since NotificationDelegate is ref-counted. 93 // Private destructor since NotificationDelegate is ref-counted.
94 ~DeprecatedAcceleratorNotificationDelegate() override {} 94 ~DeprecatedAcceleratorNotificationDelegate() override {}
95 95
96 DISALLOW_COPY_AND_ASSIGN(DeprecatedAcceleratorNotificationDelegate); 96 DISALLOW_COPY_AND_ASSIGN(DeprecatedAcceleratorNotificationDelegate);
97 }; 97 };
98 98
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 base::RecordAction(UserMetricsAction("Accel_Open_File_Manager")); 494 base::RecordAction(UserMetricsAction("Accel_Open_File_Manager"));
495 495
496 WmShell::Get()->new_window_controller()->OpenFileManager(); 496 WmShell::Get()->new_window_controller()->OpenFileManager();
497 } 497 }
498 498
499 void HandleGetHelp() { 499 void HandleGetHelp() {
500 WmShell::Get()->new_window_controller()->OpenGetHelp(); 500 WmShell::Get()->new_window_controller()->OpenGetHelp();
501 } 501 }
502 502
503 bool CanHandleLock() { 503 bool CanHandleLock() {
504 return WmShell::Get()->GetSessionStateDelegate()->CanLockScreen(); 504 return WmShell::Get()->session_controller()->CanLockScreen();
505 } 505 }
506 506
507 void HandleLock() { 507 void HandleLock() {
508 base::RecordAction(UserMetricsAction("Accel_LockScreen_L")); 508 base::RecordAction(UserMetricsAction("Accel_LockScreen_L"));
509 WmShell::Get()->GetSessionStateDelegate()->LockScreen(); 509 WmShell::Get()->session_controller()->LockScreen();
510 } 510 }
511 511
512 void HandleShowStylusTools() { 512 void HandleShowStylusTools() {
513 base::RecordAction(UserMetricsAction("Accel_Show_Stylus_Tools")); 513 base::RecordAction(UserMetricsAction("Accel_Show_Stylus_Tools"));
514 514
515 RootWindowController* root_window_controller = 515 RootWindowController* root_window_controller =
516 Shell::GetWmRootWindowForNewWindows()->GetRootWindowController(); 516 Shell::GetWmRootWindowForNewWindows()->GetRootWindowController();
517 StatusAreaWidget* status_area_widget = 517 StatusAreaWidget* status_area_widget =
518 root_window_controller->GetShelf()->GetStatusAreaWidget(); 518 root_window_controller->GetShelf()->GetStatusAreaWidget();
519 // Tests (clusterfuzz) can trigger this before the status area is ready. 519 // Tests (clusterfuzz) can trigger this before the status area is ready.
520 if (status_area_widget) 520 if (status_area_widget)
521 status_area_widget->palette_tray()->ShowPalette(); 521 status_area_widget->palette_tray()->ShowPalette();
522 } 522 }
523 523
524 bool CanHandleShowStylusTools() { 524 bool CanHandleShowStylusTools() {
525 return Shell::GetInstance()->palette_delegate() && 525 return Shell::GetInstance()->palette_delegate() &&
526 Shell::GetInstance()->palette_delegate()->ShouldShowPalette(); 526 Shell::GetInstance()->palette_delegate()->ShouldShowPalette();
527 } 527 }
528 528
529 void HandleSuspend() { 529 void HandleSuspend() {
530 base::RecordAction(UserMetricsAction("Accel_Suspend")); 530 base::RecordAction(UserMetricsAction("Accel_Suspend"));
531 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestSuspend(); 531 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestSuspend();
532 } 532 }
533 533
534 bool CanHandleCycleUser() { 534 bool CanHandleCycleUser() {
535 return Shell::Get()->shell_delegate()->IsMultiProfilesEnabled() && 535 return Shell::Get()->shell_delegate()->IsMultiProfilesEnabled() &&
536 WmShell::Get()->GetSessionStateDelegate()->NumberOfLoggedInUsers() > 1; 536 WmShell::Get()->session_controller()->NumberOfLoggedInUsers() > 1;
537 } 537 }
538 538
539 void HandleCycleUser(CycleUserDirection direction) { 539 void HandleCycleUser(CycleUserDirection direction) {
540 MultiProfileUMA::RecordSwitchActiveUser( 540 MultiProfileUMA::RecordSwitchActiveUser(
541 MultiProfileUMA::SWITCH_ACTIVE_USER_BY_ACCELERATOR); 541 MultiProfileUMA::SWITCH_ACTIVE_USER_BY_ACCELERATOR);
542 switch (direction) { 542 switch (direction) {
543 case CycleUserDirection::NEXT: 543 case CycleUserDirection::NEXT:
544 base::RecordAction(UserMetricsAction("Accel_Switch_To_Next_User")); 544 base::RecordAction(UserMetricsAction("Accel_Switch_To_Next_User"));
545 break; 545 break;
546 case CycleUserDirection::PREVIOUS: 546 case CycleUserDirection::PREVIOUS:
547 base::RecordAction(UserMetricsAction("Accel_Switch_To_Previous_User")); 547 base::RecordAction(UserMetricsAction("Accel_Switch_To_Previous_User"));
548 break; 548 break;
549 } 549 }
550 WmShell::Get()->GetSessionStateDelegate()->CycleActiveUser(direction); 550 WmShell::Get()->session_controller()->CycleActiveUser(direction);
551 } 551 }
552 552
553 bool CanHandleToggleCapsLock(const ui::Accelerator& accelerator, 553 bool CanHandleToggleCapsLock(const ui::Accelerator& accelerator,
554 const ui::Accelerator& previous_accelerator) { 554 const ui::Accelerator& previous_accelerator) {
555 chromeos::input_method::InputMethodManager* ime = 555 chromeos::input_method::InputMethodManager* ime =
556 chromeos::input_method::InputMethodManager::Get(); 556 chromeos::input_method::InputMethodManager::Get();
557 557
558 // This shortcust is set to be trigger on release. Either the current 558 // This shortcust is set to be trigger on release. Either the current
559 // accelerator is a Search release or Alt release. 559 // accelerator is a Search release or Alt release.
560 if (accelerator.key_code() == ui::VKEY_LWIN && 560 if (accelerator.key_code() == ui::VKEY_LWIN &&
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
1220 } 1220 }
1221 1221
1222 AcceleratorController::AcceleratorProcessingRestriction 1222 AcceleratorController::AcceleratorProcessingRestriction
1223 AcceleratorController::GetAcceleratorProcessingRestriction(int action) { 1223 AcceleratorController::GetAcceleratorProcessingRestriction(int action) {
1224 WmShell* wm_shell = WmShell::Get(); 1224 WmShell* wm_shell = WmShell::Get();
1225 if (wm_shell->IsPinned() && 1225 if (wm_shell->IsPinned() &&
1226 actions_allowed_in_pinned_mode_.find(action) == 1226 actions_allowed_in_pinned_mode_.find(action) ==
1227 actions_allowed_in_pinned_mode_.end()) { 1227 actions_allowed_in_pinned_mode_.end()) {
1228 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; 1228 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION;
1229 } 1229 }
1230 // TODO(xiyuan): Replace with SessionController. http://crbug.com/648964 1230 if (!wm_shell->session_controller()->IsActiveUserSessionStarted() &&
1231 if (!wm_shell->GetSessionStateDelegate()->IsActiveUserSessionStarted() &&
1232 actions_allowed_at_login_screen_.find(action) == 1231 actions_allowed_at_login_screen_.find(action) ==
1233 actions_allowed_at_login_screen_.end()) { 1232 actions_allowed_at_login_screen_.end()) {
1234 return RESTRICTION_PREVENT_PROCESSING; 1233 return RESTRICTION_PREVENT_PROCESSING;
1235 } 1234 }
1236 if (wm_shell->GetSessionStateDelegate()->IsScreenLocked() && 1235 if (wm_shell->session_controller()->IsScreenLocked() &&
1237 actions_allowed_at_lock_screen_.find(action) == 1236 actions_allowed_at_lock_screen_.find(action) ==
1238 actions_allowed_at_lock_screen_.end()) { 1237 actions_allowed_at_lock_screen_.end()) {
1239 return RESTRICTION_PREVENT_PROCESSING; 1238 return RESTRICTION_PREVENT_PROCESSING;
1240 } 1239 }
1241 if (Shell::Get()->shell_delegate()->IsRunningInForcedAppMode() && 1240 if (Shell::Get()->shell_delegate()->IsRunningInForcedAppMode() &&
1242 actions_allowed_in_app_mode_.find(action) == 1241 actions_allowed_in_app_mode_.find(action) ==
1243 actions_allowed_in_app_mode_.end()) { 1242 actions_allowed_in_app_mode_.end()) {
1244 return RESTRICTION_PREVENT_PROCESSING; 1243 return RESTRICTION_PREVENT_PROCESSING;
1245 } 1244 }
1246 if (WmShell::Get()->IsSystemModalWindowOpen() && 1245 if (WmShell::Get()->IsSystemModalWindowOpen() &&
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1293 data->uma_histogram_name, data->notification_message_id, 1292 data->uma_histogram_name, data->notification_message_id,
1294 data->old_shortcut_id, data->new_shortcut_id); 1293 data->old_shortcut_id, data->new_shortcut_id);
1295 1294
1296 if (!data->deprecated_enabled) 1295 if (!data->deprecated_enabled)
1297 return AcceleratorProcessingStatus::STOP; 1296 return AcceleratorProcessingStatus::STOP;
1298 1297
1299 return AcceleratorProcessingStatus::PROCEED; 1298 return AcceleratorProcessingStatus::PROCEED;
1300 } 1299 }
1301 1300
1302 } // namespace ash 1301 } // namespace ash
OLDNEW
« no previous file with comments | « ash/accelerators/accelerator_interactive_uitest_chromeos.cc ('k') | ash/common/session/session_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698