OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/chromeos/login/ui/login_display_host_impl.h" | 5 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "ash/audio/sounds.h" | |
10 #include "ash/desktop_background/desktop_background_controller.h" | |
11 #include "ash/desktop_background/user_wallpaper_delegate.h" | |
12 #include "ash/shell.h" | |
13 #include "ash/shell_window_ids.h" | |
14 #include "base/bind.h" | 9 #include "base/bind.h" |
15 #include "base/command_line.h" | 10 #include "base/command_line.h" |
16 #include "base/debug/trace_event.h" | 11 #include "base/debug/trace_event.h" |
17 #include "base/logging.h" | 12 #include "base/logging.h" |
18 #include "base/prefs/pref_service.h" | 13 #include "base/prefs/pref_service.h" |
19 #include "base/strings/string_split.h" | 14 #include "base/strings/string_split.h" |
20 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
21 #include "base/threading/thread_restrictions.h" | 16 #include "base/threading/thread_restrictions.h" |
22 #include "base/time/time.h" | 17 #include "base/time/time.h" |
23 #include "base/values.h" | 18 #include "base/values.h" |
(...skipping 11 matching lines...) Expand all Loading... |
35 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" | 30 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" |
36 #include "chrome/browser/chromeos/language_preferences.h" | 31 #include "chrome/browser/chromeos/language_preferences.h" |
37 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" | 32 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" |
38 #include "chrome/browser/chromeos/login/existing_user_controller.h" | 33 #include "chrome/browser/chromeos/login/existing_user_controller.h" |
39 #include "chrome/browser/chromeos/login/helper.h" | 34 #include "chrome/browser/chromeos/login/helper.h" |
40 #include "chrome/browser/chromeos/login/login_utils.h" | 35 #include "chrome/browser/chromeos/login/login_utils.h" |
41 #include "chrome/browser/chromeos/login/login_wizard.h" | 36 #include "chrome/browser/chromeos/login/login_wizard.h" |
42 #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h" | 37 #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h" |
43 #include "chrome/browser/chromeos/login/startup_utils.h" | 38 #include "chrome/browser/chromeos/login/startup_utils.h" |
44 #include "chrome/browser/chromeos/login/ui/input_events_blocker.h" | 39 #include "chrome/browser/chromeos/login/ui/input_events_blocker.h" |
45 #include "chrome/browser/chromeos/login/ui/keyboard_driven_oobe_key_handler.h" | |
46 #include "chrome/browser/chromeos/login/ui/oobe_display.h" | 40 #include "chrome/browser/chromeos/login/ui/oobe_display.h" |
47 #include "chrome/browser/chromeos/login/ui/webui_login_display.h" | 41 #include "chrome/browser/chromeos/login/ui/webui_login_display.h" |
48 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" | 42 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" |
49 #include "chrome/browser/chromeos/login/wizard_controller.h" | 43 #include "chrome/browser/chromeos/login/wizard_controller.h" |
50 #include "chrome/browser/chromeos/mobile_config.h" | 44 #include "chrome/browser/chromeos/mobile_config.h" |
51 #include "chrome/browser/chromeos/net/delay_network_call.h" | 45 #include "chrome/browser/chromeos/net/delay_network_call.h" |
52 #include "chrome/browser/chromeos/policy/auto_enrollment_client.h" | 46 #include "chrome/browser/chromeos/policy/auto_enrollment_client.h" |
53 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 47 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
54 #include "chrome/browser/chromeos/system/input_device_settings.h" | 48 #include "chrome/browser/chromeos/system/input_device_settings.h" |
55 #include "chrome/browser/chromeos/ui/focus_ring_controller.h" | 49 #include "chrome/browser/chromeos/ui/focus_ring_controller.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 #include "ui/gfx/size.h" | 83 #include "ui/gfx/size.h" |
90 #include "ui/gfx/transform.h" | 84 #include "ui/gfx/transform.h" |
91 #include "ui/keyboard/keyboard_controller.h" | 85 #include "ui/keyboard/keyboard_controller.h" |
92 #include "ui/keyboard/keyboard_util.h" | 86 #include "ui/keyboard/keyboard_util.h" |
93 #include "ui/views/focus/focus_manager.h" | 87 #include "ui/views/focus/focus_manager.h" |
94 #include "ui/views/widget/widget.h" | 88 #include "ui/views/widget/widget.h" |
95 #include "ui/views/widget/widget_delegate.h" | 89 #include "ui/views/widget/widget_delegate.h" |
96 #include "ui/wm/core/window_animations.h" | 90 #include "ui/wm/core/window_animations.h" |
97 #include "url/gurl.h" | 91 #include "url/gurl.h" |
98 | 92 |
| 93 #if !defined(USE_ATHENA) |
| 94 #include "ash/audio/sounds.h" |
| 95 #include "ash/desktop_background/desktop_background_controller.h" |
| 96 #include "ash/desktop_background/user_wallpaper_delegate.h" |
| 97 #include "ash/shell.h" |
| 98 #include "ash/shell_window_ids.h" |
| 99 #include "chrome/browser/chromeos/login/ui/keyboard_driven_oobe_key_handler.h" |
| 100 #endif |
| 101 |
99 #if defined(USE_ATHENA) | 102 #if defined(USE_ATHENA) |
100 #include "athena/screen/public/screen_manager.h" | 103 #include "athena/screen/public/screen_manager.h" |
101 #include "athena/util/container_priorities.h" | 104 #include "athena/util/container_priorities.h" |
102 #include "athena/util/fill_layout_manager.h" | 105 #include "athena/util/fill_layout_manager.h" |
103 #endif | 106 #endif |
104 | 107 |
105 namespace { | 108 namespace { |
106 | 109 |
107 // Maximum delay for startup sound after 'loginPromptVisible' signal. | 110 // Maximum delay for startup sound after 'loginPromptVisible' signal. |
108 const int kStartupSoundMaxDelayMs = 2000; | 111 const int kStartupSoundMaxDelayMs = 2000; |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 WebUILoginView* LoginDisplayHostImpl::GetWebUILoginView() const { | 454 WebUILoginView* LoginDisplayHostImpl::GetWebUILoginView() const { |
452 return login_view_; | 455 return login_view_; |
453 } | 456 } |
454 | 457 |
455 void LoginDisplayHostImpl::BeforeSessionStart() { | 458 void LoginDisplayHostImpl::BeforeSessionStart() { |
456 session_starting_ = true; | 459 session_starting_ = true; |
457 } | 460 } |
458 | 461 |
459 void LoginDisplayHostImpl::Finalize() { | 462 void LoginDisplayHostImpl::Finalize() { |
460 DVLOG(1) << "Session starting"; | 463 DVLOG(1) << "Session starting"; |
| 464 #if !defined(USE_ATHENA) |
461 if (ash::Shell::HasInstance()) { | 465 if (ash::Shell::HasInstance()) { |
462 ash::Shell::GetInstance()-> | 466 ash::Shell::GetInstance()-> |
463 desktop_background_controller()->MoveDesktopToUnlockedContainer(); | 467 desktop_background_controller()->MoveDesktopToUnlockedContainer(); |
464 } | 468 } |
| 469 #endif |
465 if (wizard_controller_.get()) | 470 if (wizard_controller_.get()) |
466 wizard_controller_->OnSessionStart(); | 471 wizard_controller_->OnSessionStart(); |
467 | 472 |
468 switch (finalize_animation_type_) { | 473 switch (finalize_animation_type_) { |
469 case ANIMATION_NONE: | 474 case ANIMATION_NONE: |
470 ShutdownDisplayHost(false); | 475 ShutdownDisplayHost(false); |
471 break; | 476 break; |
472 case ANIMATION_WORKSPACE: | 477 case ANIMATION_WORKSPACE: |
| 478 #if !defined(USE_ATHENA) |
473 if (ash::Shell::HasInstance()) | 479 if (ash::Shell::HasInstance()) |
474 ScheduleWorkspaceAnimation(); | 480 ScheduleWorkspaceAnimation(); |
| 481 #endif |
475 | 482 |
476 ShutdownDisplayHost(false); | 483 ShutdownDisplayHost(false); |
477 break; | 484 break; |
478 case ANIMATION_FADE_OUT: | 485 case ANIMATION_FADE_OUT: |
479 // Display host is deleted once animation is completed | 486 // Display host is deleted once animation is completed |
480 // since sign in screen widget has to stay alive. | 487 // since sign in screen widget has to stay alive. |
481 ScheduleFadeOutAnimation(); | 488 ScheduleFadeOutAnimation(); |
482 break; | 489 break; |
483 } | 490 } |
484 } | 491 } |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 | 573 |
567 restore_path_ = RESTORE_ADD_USER_INTO_SESSION; | 574 restore_path_ = RESTORE_ADD_USER_INTO_SESSION; |
568 completion_callback_ = completion_callback; | 575 completion_callback_ = completion_callback; |
569 finalize_animation_type_ = ANIMATION_NONE; | 576 finalize_animation_type_ = ANIMATION_NONE; |
570 VLOG(1) << "Login WebUI >> user adding"; | 577 VLOG(1) << "Login WebUI >> user adding"; |
571 if (!login_window_) | 578 if (!login_window_) |
572 LoadURL(GURL(kUserAddingURL)); | 579 LoadURL(GURL(kUserAddingURL)); |
573 // We should emit this signal only at login screen (after reboot or sign out). | 580 // We should emit this signal only at login screen (after reboot or sign out). |
574 login_view_->set_should_emit_login_prompt_visible(false); | 581 login_view_->set_should_emit_login_prompt_visible(false); |
575 | 582 |
| 583 #if !defined(USE_ATHENA) |
576 // Lock container can be transparent after lock screen animation. | 584 // Lock container can be transparent after lock screen animation. |
577 aura::Window* lock_container = ash::Shell::GetContainer( | 585 aura::Window* lock_container = ash::Shell::GetContainer( |
578 ash::Shell::GetPrimaryRootWindow(), | 586 ash::Shell::GetPrimaryRootWindow(), |
579 ash::kShellWindowId_LockScreenContainersContainer); | 587 ash::kShellWindowId_LockScreenContainersContainer); |
580 lock_container->layer()->SetOpacity(1.0); | 588 lock_container->layer()->SetOpacity(1.0); |
581 | 589 |
582 ash::Shell::GetInstance()-> | 590 ash::Shell::GetInstance()-> |
583 desktop_background_controller()->MoveDesktopToLockedContainer(); | 591 desktop_background_controller()->MoveDesktopToLockedContainer(); |
| 592 #endif |
584 | 593 |
585 sign_in_controller_.reset(); // Only one controller in a time. | 594 sign_in_controller_.reset(); // Only one controller in a time. |
586 sign_in_controller_.reset(new chromeos::ExistingUserController(this)); | 595 sign_in_controller_.reset(new chromeos::ExistingUserController(this)); |
587 SetOobeProgressBarVisible(oobe_progress_bar_visible_ = false); | 596 SetOobeProgressBarVisible(oobe_progress_bar_visible_ = false); |
588 SetStatusAreaVisible(true); | 597 SetStatusAreaVisible(true); |
589 sign_in_controller_->Init( | 598 sign_in_controller_->Init( |
590 user_manager::UserManager::Get()->GetUsersAllowedForMultiProfile()); | 599 user_manager::UserManager::Get()->GetUsersAllowedForMultiProfile()); |
591 CHECK(webui_login_display_); | 600 CHECK(webui_login_display_); |
592 GetOobeUI()->ShowSigninScreen(LoginScreenContext(), | 601 GetOobeUI()->ShowSigninScreen(LoginScreenContext(), |
593 webui_login_display_, | 602 webui_login_display_, |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 } | 850 } |
842 | 851 |
843 //////////////////////////////////////////////////////////////////////////////// | 852 //////////////////////////////////////////////////////////////////////////////// |
844 // LoginDisplayHostImpl, chromeos::CrasAudioHandler::AudioObserver | 853 // LoginDisplayHostImpl, chromeos::CrasAudioHandler::AudioObserver |
845 // implementation: | 854 // implementation: |
846 | 855 |
847 void LoginDisplayHostImpl::OnActiveOutputNodeChanged() { | 856 void LoginDisplayHostImpl::OnActiveOutputNodeChanged() { |
848 TryToPlayStartupSound(); | 857 TryToPlayStartupSound(); |
849 } | 858 } |
850 | 859 |
| 860 #if !defined(USE_ATHENA) |
851 //////////////////////////////////////////////////////////////////////////////// | 861 //////////////////////////////////////////////////////////////////////////////// |
852 // LoginDisplayHostImpl, ash::KeyboardStateObserver: | 862 // LoginDisplayHostImpl, ash::KeyboardStateObserver: |
853 // implementation: | 863 // implementation: |
854 | 864 |
855 void LoginDisplayHostImpl::OnVirtualKeyboardStateChanged(bool activated) { | 865 void LoginDisplayHostImpl::OnVirtualKeyboardStateChanged(bool activated) { |
856 if (keyboard::KeyboardController::GetInstance()) { | 866 if (keyboard::KeyboardController::GetInstance()) { |
857 if (activated) { | 867 if (activated) { |
858 if (!is_observing_keyboard_) { | 868 if (!is_observing_keyboard_) { |
859 keyboard::KeyboardController::GetInstance()->AddObserver(this); | 869 keyboard::KeyboardController::GetInstance()->AddObserver(this); |
860 is_observing_keyboard_ = true; | 870 is_observing_keyboard_ = true; |
861 } | 871 } |
862 } else { | 872 } else { |
863 keyboard::KeyboardController::GetInstance()->RemoveObserver(this); | 873 keyboard::KeyboardController::GetInstance()->RemoveObserver(this); |
864 is_observing_keyboard_ = false; | 874 is_observing_keyboard_ = false; |
865 } | 875 } |
866 } | 876 } |
867 } | 877 } |
| 878 #endif |
868 | 879 |
869 //////////////////////////////////////////////////////////////////////////////// | 880 //////////////////////////////////////////////////////////////////////////////// |
870 // LoginDisplayHostImpl, keyboard::KeyboardControllerObserver: | 881 // LoginDisplayHostImpl, keyboard::KeyboardControllerObserver: |
871 // implementation: | 882 // implementation: |
872 | 883 |
873 void LoginDisplayHostImpl::OnKeyboardBoundsChanging( | 884 void LoginDisplayHostImpl::OnKeyboardBoundsChanging( |
874 const gfx::Rect& new_bounds) { | 885 const gfx::Rect& new_bounds) { |
875 if (new_bounds.IsEmpty() && !keyboard_bounds_.IsEmpty()) { | 886 if (new_bounds.IsEmpty() && !keyboard_bounds_.IsEmpty()) { |
876 // Keyboard has been hidden. | 887 // Keyboard has been hidden. |
877 if (GetOobeUI()) { | 888 if (GetOobeUI()) { |
(...skipping 17 matching lines...) Expand all Loading... |
895 // LoginDisplayHostImpl, gfx::DisplayObserver implementation: | 906 // LoginDisplayHostImpl, gfx::DisplayObserver implementation: |
896 | 907 |
897 void LoginDisplayHostImpl::OnDisplayAdded(const gfx::Display& new_display) { | 908 void LoginDisplayHostImpl::OnDisplayAdded(const gfx::Display& new_display) { |
898 } | 909 } |
899 | 910 |
900 void LoginDisplayHostImpl::OnDisplayRemoved(const gfx::Display& old_display) { | 911 void LoginDisplayHostImpl::OnDisplayRemoved(const gfx::Display& old_display) { |
901 } | 912 } |
902 | 913 |
903 void LoginDisplayHostImpl::OnDisplayMetricsChanged(const gfx::Display& display, | 914 void LoginDisplayHostImpl::OnDisplayMetricsChanged(const gfx::Display& display, |
904 uint32_t changed_metrics) { | 915 uint32_t changed_metrics) { |
| 916 #if !defined(USE_ATHENA) |
905 if (display.id() != ash::Shell::GetScreen()->GetPrimaryDisplay().id() || | 917 if (display.id() != ash::Shell::GetScreen()->GetPrimaryDisplay().id() || |
906 !(changed_metrics & DISPLAY_METRIC_BOUNDS)) { | 918 !(changed_metrics & DISPLAY_METRIC_BOUNDS)) { |
907 return; | 919 return; |
908 } | 920 } |
909 | 921 |
910 if (GetOobeUI()) { | 922 if (GetOobeUI()) { |
911 const gfx::Size& size = ash::Shell::GetScreen()->GetPrimaryDisplay().size(); | 923 const gfx::Size& size = ash::Shell::GetScreen()->GetPrimaryDisplay().size(); |
912 GetOobeUI()->GetCoreOobeActor()->SetClientAreaSize(size.width(), | 924 GetOobeUI()->GetCoreOobeActor()->SetClientAreaSize(size.width(), |
913 size.height()); | 925 size.height()); |
914 } | 926 } |
| 927 #endif |
915 } | 928 } |
916 | 929 |
917 //////////////////////////////////////////////////////////////////////////////// | 930 //////////////////////////////////////////////////////////////////////////////// |
918 // LoginDisplayHostImpl, views::WidgetRemovalsObserver implementation: | 931 // LoginDisplayHostImpl, views::WidgetRemovalsObserver implementation: |
919 void LoginDisplayHostImpl::OnWillRemoveView(views::Widget* widget, | 932 void LoginDisplayHostImpl::OnWillRemoveView(views::Widget* widget, |
920 views::View* view) { | 933 views::View* view) { |
921 if (view != static_cast<views::View*>(login_view_)) | 934 if (view != static_cast<views::View*>(login_view_)) |
922 return; | 935 return; |
923 login_view_ = NULL; | 936 login_view_ = NULL; |
924 widget->RemoveRemovalsObserver(this); | 937 widget->RemoveRemovalsObserver(this); |
(...skipping 10 matching lines...) Expand all Loading... |
935 registrar_.RemoveAll(); | 948 registrar_.RemoveAll(); |
936 base::MessageLoop::current()->DeleteSoon(FROM_HERE, this); | 949 base::MessageLoop::current()->DeleteSoon(FROM_HERE, this); |
937 if (post_quit_task) | 950 if (post_quit_task) |
938 base::MessageLoop::current()->Quit(); | 951 base::MessageLoop::current()->Quit(); |
939 | 952 |
940 if (!completion_callback_.is_null()) | 953 if (!completion_callback_.is_null()) |
941 completion_callback_.Run(); | 954 completion_callback_.Run(); |
942 } | 955 } |
943 | 956 |
944 void LoginDisplayHostImpl::ScheduleWorkspaceAnimation() { | 957 void LoginDisplayHostImpl::ScheduleWorkspaceAnimation() { |
| 958 #if !defined(USE_ATHENA) |
945 if (ash::Shell::GetContainer(ash::Shell::GetPrimaryRootWindow(), | 959 if (ash::Shell::GetContainer(ash::Shell::GetPrimaryRootWindow(), |
946 ash::kShellWindowId_DesktopBackgroundContainer) | 960 ash::kShellWindowId_DesktopBackgroundContainer) |
947 ->children() | 961 ->children() |
948 .empty()) { | 962 .empty()) { |
949 // If there is no background window, don't perform any animation on the | 963 // If there is no background window, don't perform any animation on the |
950 // default and background layer because there is nothing behind it. | 964 // default and background layer because there is nothing behind it. |
951 return; | 965 return; |
952 } | 966 } |
953 | 967 |
954 if (!CommandLine::ForCurrentProcess()->HasSwitch( | 968 if (!CommandLine::ForCurrentProcess()->HasSwitch( |
955 switches::kDisableLoginAnimations)) | 969 switches::kDisableLoginAnimations)) |
956 ash::Shell::GetInstance()->DoInitialWorkspaceAnimation(); | 970 ash::Shell::GetInstance()->DoInitialWorkspaceAnimation(); |
| 971 #endif |
957 } | 972 } |
958 | 973 |
959 void LoginDisplayHostImpl::ScheduleFadeOutAnimation() { | 974 void LoginDisplayHostImpl::ScheduleFadeOutAnimation() { |
960 ui::Layer* layer = login_window_->GetLayer(); | 975 ui::Layer* layer = login_window_->GetLayer(); |
961 ui::ScopedLayerAnimationSettings animation(layer->GetAnimator()); | 976 ui::ScopedLayerAnimationSettings animation(layer->GetAnimator()); |
962 animation.AddObserver(new AnimationObserver( | 977 animation.AddObserver(new AnimationObserver( |
963 base::Bind(&LoginDisplayHostImpl::ShutdownDisplayHost, | 978 base::Bind(&LoginDisplayHostImpl::ShutdownDisplayHost, |
964 animation_weak_ptr_factory_.GetWeakPtr(), | 979 animation_weak_ptr_factory_.GetWeakPtr(), |
965 false))); | 980 false))); |
966 layer->SetOpacity(0); | 981 layer->SetOpacity(0); |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1046 void LoginDisplayHostImpl::InitLoginWindowAndView() { | 1061 void LoginDisplayHostImpl::InitLoginWindowAndView() { |
1047 if (login_window_) | 1062 if (login_window_) |
1048 return; | 1063 return; |
1049 | 1064 |
1050 if (system::InputDeviceSettings::Get()->ForceKeyboardDrivenUINavigation()) { | 1065 if (system::InputDeviceSettings::Get()->ForceKeyboardDrivenUINavigation()) { |
1051 views::FocusManager::set_arrow_key_traversal_enabled(true); | 1066 views::FocusManager::set_arrow_key_traversal_enabled(true); |
1052 #if !defined(USE_ATHENA) | 1067 #if !defined(USE_ATHENA) |
1053 // crbug.com/405859 | 1068 // crbug.com/405859 |
1054 focus_ring_controller_.reset(new FocusRingController); | 1069 focus_ring_controller_.reset(new FocusRingController); |
1055 focus_ring_controller_->SetVisible(true); | 1070 focus_ring_controller_->SetVisible(true); |
1056 #endif | |
1057 | 1071 |
1058 keyboard_driven_oobe_key_handler_.reset(new KeyboardDrivenOobeKeyHandler); | 1072 keyboard_driven_oobe_key_handler_.reset(new KeyboardDrivenOobeKeyHandler); |
| 1073 #endif |
1059 } | 1074 } |
1060 | 1075 |
1061 views::Widget::InitParams params( | 1076 views::Widget::InitParams params( |
1062 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); | 1077 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
1063 params.bounds = background_bounds(); | 1078 params.bounds = background_bounds(); |
1064 params.show_state = ui::SHOW_STATE_FULLSCREEN; | 1079 params.show_state = ui::SHOW_STATE_FULLSCREEN; |
1065 params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; | 1080 params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
1066 #if defined(USE_ATHENA) | 1081 #if defined(USE_ATHENA) |
1067 athena::ScreenManager::ContainerParams container_params( | 1082 athena::ScreenManager::ContainerParams container_params( |
1068 "LoginScreen", athena::CP_LOGIN_SCREEN); | 1083 "LoginScreen", athena::CP_LOGIN_SCREEN); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1138 startup_sound_played_ = true; | 1153 startup_sound_played_ = true; |
1139 | 1154 |
1140 // Don't try play startup sound if login prompt is already visible | 1155 // Don't try play startup sound if login prompt is already visible |
1141 // for a long time or can't be played. | 1156 // for a long time or can't be played. |
1142 if (base::TimeTicks::Now() - login_prompt_visible_time_ > | 1157 if (base::TimeTicks::Now() - login_prompt_visible_time_ > |
1143 base::TimeDelta::FromMilliseconds(kStartupSoundMaxDelayMs)) { | 1158 base::TimeDelta::FromMilliseconds(kStartupSoundMaxDelayMs)) { |
1144 EnableSystemSoundsForAccessibility(); | 1159 EnableSystemSoundsForAccessibility(); |
1145 return; | 1160 return; |
1146 } | 1161 } |
1147 | 1162 |
| 1163 #if !defined(USE_ATHENA) |
1148 if (!startup_sound_honors_spoken_feedback_ && | 1164 if (!startup_sound_honors_spoken_feedback_ && |
1149 !ash::PlaySystemSoundAlways(SOUND_STARTUP)) { | 1165 !ash::PlaySystemSoundAlways(SOUND_STARTUP)) { |
1150 EnableSystemSoundsForAccessibility(); | 1166 EnableSystemSoundsForAccessibility(); |
1151 return; | 1167 return; |
1152 } | 1168 } |
1153 | 1169 |
1154 #if !defined(USE_ATHENA) | |
1155 // crbug.com/408733 | 1170 // crbug.com/408733 |
1156 if (startup_sound_honors_spoken_feedback_ && | 1171 if (startup_sound_honors_spoken_feedback_ && |
1157 !ash::PlaySystemSoundIfSpokenFeedback(SOUND_STARTUP)) { | 1172 !ash::PlaySystemSoundIfSpokenFeedback(SOUND_STARTUP)) { |
1158 EnableSystemSoundsForAccessibility(); | 1173 EnableSystemSoundsForAccessibility(); |
1159 return; | 1174 return; |
1160 } | 1175 } |
1161 #endif | 1176 #endif |
1162 | 1177 |
1163 base::MessageLoop::current()->PostDelayedTask( | 1178 base::MessageLoop::current()->PostDelayedTask( |
1164 FROM_HERE, | 1179 FROM_HERE, |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1302 scoped_ptr<locale_util::SwitchLanguageCallback> callback( | 1317 scoped_ptr<locale_util::SwitchLanguageCallback> callback( |
1303 new locale_util::SwitchLanguageCallback( | 1318 new locale_util::SwitchLanguageCallback( |
1304 base::Bind(&OnLanguageSwitchedCallback, base::Passed(data.Pass())))); | 1319 base::Bind(&OnLanguageSwitchedCallback, base::Passed(data.Pass())))); |
1305 | 1320 |
1306 // Load locale keyboards here. Hardware layout would be automatically enabled. | 1321 // Load locale keyboards here. Hardware layout would be automatically enabled. |
1307 locale_util::SwitchLanguage( | 1322 locale_util::SwitchLanguage( |
1308 locale, true, true /* login_layouts_only */, callback.Pass()); | 1323 locale, true, true /* login_layouts_only */, callback.Pass()); |
1309 } | 1324 } |
1310 | 1325 |
1311 } // namespace chromeos | 1326 } // namespace chromeos |
OLD | NEW |