Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/chrome_browser_main_chromeos.h" | 5 #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 32 #include "chrome/browser/chromeos/dbus/chrome_console_service_provider_delegate. h" | 32 #include "chrome/browser/chromeos/dbus/chrome_console_service_provider_delegate. h" |
| 33 #include "chrome/browser/chromeos/dbus/chrome_display_power_service_provider_del egate.h" | 33 #include "chrome/browser/chromeos/dbus/chrome_display_power_service_provider_del egate.h" |
| 34 #include "chrome/browser/chromeos/dbus/chrome_proxy_resolver_delegate.h" | 34 #include "chrome/browser/chromeos/dbus/chrome_proxy_resolver_delegate.h" |
| 35 #include "chrome/browser/chromeos/dbus/printer_service_provider.h" | 35 #include "chrome/browser/chromeos/dbus/printer_service_provider.h" |
| 36 #include "chrome/browser/chromeos/dbus/screen_lock_service_provider.h" | 36 #include "chrome/browser/chromeos/dbus/screen_lock_service_provider.h" |
| 37 #include "chrome/browser/chromeos/device/input_service_proxy.h" | 37 #include "chrome/browser/chromeos/device/input_service_proxy.h" |
| 38 #include "chrome/browser/chromeos/events/event_rewriter.h" | 38 #include "chrome/browser/chromeos/events/event_rewriter.h" |
| 39 #include "chrome/browser/chromeos/events/event_rewriter_controller.h" | 39 #include "chrome/browser/chromeos/events/event_rewriter_controller.h" |
| 40 #include "chrome/browser/chromeos/events/keyboard_driven_event_rewriter.h" | 40 #include "chrome/browser/chromeos/events/keyboard_driven_event_rewriter.h" |
| 41 #include "chrome/browser/chromeos/extensions/default_app_order.h" | 41 #include "chrome/browser/chromeos/extensions/default_app_order.h" |
| 42 #include "chrome/browser/chromeos/extensions/extension_system_event_observer.h" | |
| 43 #include "chrome/browser/chromeos/external_metrics.h" | 42 #include "chrome/browser/chromeos/external_metrics.h" |
| 44 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" | 43 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" |
| 45 #include "chrome/browser/chromeos/input_method/input_method_util.h" | 44 #include "chrome/browser/chromeos/input_method/input_method_util.h" |
| 46 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" | |
| 47 #include "chrome/browser/chromeos/language_preferences.h" | 45 #include "chrome/browser/chromeos/language_preferences.h" |
| 48 #include "chrome/browser/chromeos/login/helper.h" | 46 #include "chrome/browser/chromeos/login/helper.h" |
| 49 #include "chrome/browser/chromeos/login/lock/screen_locker.h" | 47 #include "chrome/browser/chromeos/login/lock/screen_locker.h" |
| 50 #include "chrome/browser/chromeos/login/login_wizard.h" | 48 #include "chrome/browser/chromeos/login/login_wizard.h" |
| 51 #include "chrome/browser/chromeos/login/session/user_session_manager.h" | 49 #include "chrome/browser/chromeos/login/session/user_session_manager.h" |
| 52 #include "chrome/browser/chromeos/login/startup_utils.h" | 50 #include "chrome/browser/chromeos/login/startup_utils.h" |
| 53 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" | 51 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
| 54 #include "chrome/browser/chromeos/login/wizard_controller.h" | 52 #include "chrome/browser/chromeos/login/wizard_controller.h" |
| 55 #include "chrome/browser/chromeos/memory/oom_priority_manager.h" | 53 #include "chrome/browser/chromeos/memory/oom_priority_manager.h" |
| 56 #include "chrome/browser/chromeos/net/network_portal_detector_impl.h" | 54 #include "chrome/browser/chromeos/net/network_portal_detector_impl.h" |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 111 #include "chromeos/network/network_handler.h" | 109 #include "chromeos/network/network_handler.h" |
| 112 #include "chromeos/system/statistics_provider.h" | 110 #include "chromeos/system/statistics_provider.h" |
| 113 #include "chromeos/tpm_token_loader.h" | 111 #include "chromeos/tpm_token_loader.h" |
| 114 #include "components/metrics/metrics_service.h" | 112 #include "components/metrics/metrics_service.h" |
| 115 #include "components/ownership/owner_key_util.h" | 113 #include "components/ownership/owner_key_util.h" |
| 116 #include "components/session_manager/core/session_manager.h" | 114 #include "components/session_manager/core/session_manager.h" |
| 117 #include "components/user_manager/user.h" | 115 #include "components/user_manager/user.h" |
| 118 #include "components/user_manager/user_manager.h" | 116 #include "components/user_manager/user_manager.h" |
| 119 #include "content/public/browser/browser_thread.h" | 117 #include "content/public/browser/browser_thread.h" |
| 120 #include "content/public/browser/notification_service.h" | 118 #include "content/public/browser/notification_service.h" |
| 121 #include "content/public/browser/power_save_blocker.h" | |
| 122 #include "content/public/common/main_function_params.h" | 119 #include "content/public/common/main_function_params.h" |
| 123 #include "media/audio/sounds/sounds_manager.h" | 120 #include "media/audio/sounds/sounds_manager.h" |
| 124 #include "net/base/network_change_notifier.h" | 121 #include "net/base/network_change_notifier.h" |
| 125 #include "net/socket/ssl_server_socket.h" | 122 #include "net/socket/ssl_server_socket.h" |
| 126 #include "net/url_request/url_request.h" | 123 #include "net/url_request/url_request.h" |
| 127 #include "net/url_request/url_request_context_getter.h" | 124 #include "net/url_request/url_request_context_getter.h" |
| 128 #include "ui/base/ime/chromeos/ime_keyboard.h" | 125 #include "ui/base/ime/chromeos/ime_keyboard.h" |
| 129 #include "ui/base/ime/chromeos/input_method_manager.h" | 126 #include "ui/base/ime/chromeos/input_method_manager.h" |
| 130 #include "ui/base/touch/touch_device.h" | 127 #include "ui/base/touch/touch_device.h" |
| 131 #include "ui/events/event_utils.h" | 128 #include "ui/events/event_utils.h" |
| 132 | 129 |
| 133 // Exclude X11 dependents for ozone | 130 // Exclude X11 dependents for ozone |
| 134 #if defined(USE_X11) | 131 #if defined(USE_X11) |
| 135 #include "chrome/browser/chromeos/device_uma.h" | 132 #include "chrome/browser/chromeos/device_uma.h" |
| 136 #include "chrome/browser/chromeos/events/system_key_event_listener.h" | 133 #include "chrome/browser/chromeos/events/system_key_event_listener.h" |
| 137 #include "chrome/browser/chromeos/events/xinput_hierarchy_changed_event_listener .h" | 134 #include "chrome/browser/chromeos/events/xinput_hierarchy_changed_event_listener .h" |
| 138 #endif | 135 #endif |
| 139 | 136 |
| 140 #if !defined(USE_ATHENA) | 137 #if !defined(USE_ATHENA) |
| 141 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.h" | |
| 142 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h" | |
| 143 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" | 138 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" |
| 144 #endif | 139 #endif |
| 145 | 140 |
| 146 namespace chromeos { | 141 namespace chromeos { |
| 147 | 142 |
| 148 namespace { | 143 namespace { |
| 149 | 144 |
| 150 void ChromeOSVersionCallback(const std::string& version) { | 145 void ChromeOSVersionCallback(const std::string& version) { |
| 151 base::SetLinuxDistro(std::string("CrOS ") + version); | 146 base::SetLinuxDistro(std::string("CrOS ") + version); |
| 152 } | 147 } |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 263 } // namespace internal | 258 } // namespace internal |
| 264 | 259 |
| 265 // ChromeBrowserMainPartsChromeos ---------------------------------------------- | 260 // ChromeBrowserMainPartsChromeos ---------------------------------------------- |
| 266 | 261 |
| 267 ChromeBrowserMainPartsChromeos::ChromeBrowserMainPartsChromeos( | 262 ChromeBrowserMainPartsChromeos::ChromeBrowserMainPartsChromeos( |
| 268 const content::MainFunctionParams& parameters) | 263 const content::MainFunctionParams& parameters) |
| 269 : ChromeBrowserMainPartsLinux(parameters) { | 264 : ChromeBrowserMainPartsLinux(parameters) { |
| 270 } | 265 } |
| 271 | 266 |
| 272 ChromeBrowserMainPartsChromeos::~ChromeBrowserMainPartsChromeos() { | 267 ChromeBrowserMainPartsChromeos::~ChromeBrowserMainPartsChromeos() { |
| 273 #if !defined(USE_ATHENA) | |
| 274 if (KioskModeSettings::Get()->IsKioskModeEnabled()) | |
| 275 ShutdownKioskModeScreensaver(); | |
| 276 #endif | |
| 277 | |
| 278 // To be precise, logout (browser shutdown) is not yet done, but the | 268 // To be precise, logout (browser shutdown) is not yet done, but the |
| 279 // remaining work is negligible, hence we say LogoutDone here. | 269 // remaining work is negligible, hence we say LogoutDone here. |
| 280 BootTimesLoader::Get()->AddLogoutTimeMarker("LogoutDone", false); | 270 BootTimesLoader::Get()->AddLogoutTimeMarker("LogoutDone", false); |
| 281 BootTimesLoader::Get()->WriteLogoutTimes(); | 271 BootTimesLoader::Get()->WriteLogoutTimes(); |
| 282 } | 272 } |
| 283 | 273 |
| 284 // content::BrowserMainParts and ChromeBrowserMainExtraParts overrides --------- | 274 // content::BrowserMainParts and ChromeBrowserMainExtraParts overrides --------- |
| 285 | 275 |
| 286 void ChromeBrowserMainPartsChromeos::PreEarlyInitialization() { | 276 void ChromeBrowserMainPartsChromeos::PreEarlyInitialization() { |
| 287 CommandLine* singleton_command_line = CommandLine::ForCurrentProcess(); | 277 CommandLine* singleton_command_line = CommandLine::ForCurrentProcess(); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 387 LoginEventRecorder::Get()->SetDelegate(BootTimesLoader::Get()); | 377 LoginEventRecorder::Get()->SetDelegate(BootTimesLoader::Get()); |
| 388 | 378 |
| 389 // Trigger prefetching of ownership status. | 379 // Trigger prefetching of ownership status. |
| 390 DeviceSettingsService::Get()->Load(); | 380 DeviceSettingsService::Get()->Load(); |
| 391 | 381 |
| 392 // -- This used to be in ChromeBrowserMainParts::PreMainMessageLoopRun() | 382 // -- This used to be in ChromeBrowserMainParts::PreMainMessageLoopRun() |
| 393 // -- just before CreateProfile(). | 383 // -- just before CreateProfile(). |
| 394 | 384 |
| 395 g_browser_process->platform_part()->InitializeChromeUserManager(); | 385 g_browser_process->platform_part()->InitializeChromeUserManager(); |
| 396 | 386 |
| 397 #if defined(USE_ATHENA) | |
| 398 ScreenLocker::InitClass(); | 387 ScreenLocker::InitClass(); |
| 399 #else | |
| 400 // Initialize the screen locker now so that it can receive | |
| 401 // LOGIN_USER_CHANGED notification from UserManager. | |
| 402 if (KioskModeSettings::Get()->IsKioskModeEnabled()) | |
| 403 KioskModeIdleLogout::Initialize(); | |
| 404 else | |
| 405 ScreenLocker::InitClass(); | |
| 406 #endif | |
| 407 | 388 |
| 408 // This forces the ProfileManager to be created and register for the | 389 // This forces the ProfileManager to be created and register for the |
| 409 // notification it needs to track the logged in user. | 390 // notification it needs to track the logged in user. |
| 410 g_browser_process->profile_manager(); | 391 g_browser_process->profile_manager(); |
| 411 | 392 |
| 412 // AccessibilityManager and SystemKeyEventListener use InputMethodManager. | 393 // AccessibilityManager and SystemKeyEventListener use InputMethodManager. |
| 413 input_method::Initialize(); | 394 input_method::Initialize(); |
| 414 | 395 |
| 415 // ProfileHelper has to be initialized after UserManager instance is created. | 396 // ProfileHelper has to be initialized after UserManager instance is created. |
| 416 ProfileHelper::Get()->Initialize(); | 397 ProfileHelper::Get()->Initialize(); |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 591 bool is_running_test = parameters().ui_task != NULL; | 572 bool is_running_test = parameters().ui_task != NULL; |
| 592 g_browser_process->platform_part()->InitializeSessionManager( | 573 g_browser_process->platform_part()->InitializeSessionManager( |
| 593 parsed_command_line(), profile(), is_running_test); | 574 parsed_command_line(), profile(), is_running_test); |
| 594 g_browser_process->platform_part()->SessionManager()->Start(); | 575 g_browser_process->platform_part()->SessionManager()->Start(); |
| 595 | 576 |
| 596 // Guest user profile is never initialized with locale settings, | 577 // Guest user profile is never initialized with locale settings, |
| 597 // so we need special handling for Guest session. | 578 // so we need special handling for Guest session. |
| 598 if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) | 579 if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) |
| 599 SetGuestLocale(profile()); | 580 SetGuestLocale(profile()); |
| 600 | 581 |
| 601 // These observers must be initialized after the profile because | |
| 602 // they use the profile to dispatch extension events. | |
| 603 extension_system_event_observer_.reset(new ExtensionSystemEventObserver()); | |
|
bartfab (slow)
2014/12/02 21:25:26
Why are you removing the |extension_system_event_o
rkc
2014/12/04 19:50:06
It doesn't seem to be used for anything else excep
| |
| 604 if (KioskModeSettings::Get()->IsKioskModeEnabled()) { | |
| 605 retail_mode_power_save_blocker_ = content::PowerSaveBlocker::Create( | |
| 606 content::PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, | |
| 607 "Retail mode"); | |
| 608 } | |
| 609 | |
| 610 peripheral_battery_observer_.reset(new PeripheralBatteryObserver()); | 582 peripheral_battery_observer_.reset(new PeripheralBatteryObserver()); |
| 611 | 583 |
| 612 renderer_freezer_.reset( | 584 renderer_freezer_.reset( |
| 613 new RendererFreezer(scoped_ptr<RendererFreezer::Delegate>( | 585 new RendererFreezer(scoped_ptr<RendererFreezer::Delegate>( |
| 614 new FreezerCgroupProcessManager()))); | 586 new FreezerCgroupProcessManager()))); |
| 615 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kWakeOnPackets)) | 587 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kWakeOnPackets)) |
| 616 light_bar_.reset(new LightBar()); | 588 light_bar_.reset(new LightBar()); |
| 617 | 589 |
| 618 g_browser_process->platform_part()->InitializeAutomaticRebootManager(); | 590 g_browser_process->platform_part()->InitializeAutomaticRebootManager(); |
| 619 g_browser_process->platform_part()->InitializeDeviceDisablingManager(); | 591 g_browser_process->platform_part()->InitializeDeviceDisablingManager(); |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 720 // depend on. | 692 // depend on. |
| 721 data_promo_notification_.reset(); | 693 data_promo_notification_.reset(); |
| 722 | 694 |
| 723 // Tell DeviceSettingsService to stop talking to session_manager. Do not | 695 // Tell DeviceSettingsService to stop talking to session_manager. Do not |
| 724 // shutdown DeviceSettingsService yet, it might still be accessed by | 696 // shutdown DeviceSettingsService yet, it might still be accessed by |
| 725 // BrowserPolicyConnector (owned by g_browser_process). | 697 // BrowserPolicyConnector (owned by g_browser_process). |
| 726 DeviceSettingsService::Get()->UnsetSessionManager(); | 698 DeviceSettingsService::Get()->UnsetSessionManager(); |
| 727 | 699 |
| 728 // We should remove observers attached to D-Bus clients before | 700 // We should remove observers attached to D-Bus clients before |
| 729 // DBusThreadManager is shut down. | 701 // DBusThreadManager is shut down. |
| 730 extension_system_event_observer_.reset(); | |
| 731 retail_mode_power_save_blocker_.reset(); | |
| 732 peripheral_battery_observer_.reset(); | 702 peripheral_battery_observer_.reset(); |
| 733 power_prefs_.reset(); | 703 power_prefs_.reset(); |
| 734 renderer_freezer_.reset(); | 704 renderer_freezer_.reset(); |
| 735 light_bar_.reset(); | 705 light_bar_.reset(); |
| 736 wake_on_wifi_manager_.reset(); | 706 wake_on_wifi_manager_.reset(); |
| 737 | 707 |
| 738 // Let the ScreenLocker unregister itself from SessionManagerClient before | |
| 739 // DBusThreadManager is shut down. | |
| 740 if (!KioskModeSettings::Get()->IsKioskModeEnabled()) | |
| 741 ScreenLocker::ShutDownClass(); | |
|
bartfab (slow)
2014/12/02 21:25:27
Why is this no longer necessary?
rkc
2014/12/04 19:50:06
Whoops, I missed the !
Done.
| |
| 742 | |
| 743 keyboard_event_rewriters_.reset(); | 708 keyboard_event_rewriters_.reset(); |
| 744 #if defined(USE_X11) | 709 #if defined(USE_X11) |
| 745 // The XInput2 event listener needs to be shut down earlier than when | 710 // The XInput2 event listener needs to be shut down earlier than when |
| 746 // Singletons are finally destroyed in AtExitManager. | 711 // Singletons are finally destroyed in AtExitManager. |
| 747 XInputHierarchyChangedEventListener::GetInstance()->Stop(); | 712 XInputHierarchyChangedEventListener::GetInstance()->Stop(); |
| 748 | 713 |
| 749 DeviceUMA::GetInstance()->Stop(); | 714 DeviceUMA::GetInstance()->Stop(); |
| 750 | 715 |
| 751 // SystemKeyEventListener::Shutdown() is always safe to call, | 716 // SystemKeyEventListener::Shutdown() is always safe to call, |
| 752 // even if Initialize() wasn't called. | 717 // even if Initialize() wasn't called. |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 819 // Destroy DBus services immediately after threads are stopped. | 784 // Destroy DBus services immediately after threads are stopped. |
| 820 dbus_services_.reset(); | 785 dbus_services_.reset(); |
| 821 | 786 |
| 822 ChromeBrowserMainPartsLinux::PostDestroyThreads(); | 787 ChromeBrowserMainPartsLinux::PostDestroyThreads(); |
| 823 | 788 |
| 824 // Destroy DeviceSettingsService after g_browser_process. | 789 // Destroy DeviceSettingsService after g_browser_process. |
| 825 DeviceSettingsService::Shutdown(); | 790 DeviceSettingsService::Shutdown(); |
| 826 } | 791 } |
| 827 | 792 |
| 828 } // namespace chromeos | 793 } // namespace chromeos |
| OLD | NEW |