| 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 <stddef.h> | 7 #include <stddef.h> | 
|  | 8 | 
| 8 #include <string> | 9 #include <string> | 
| 9 #include <utility> | 10 #include <utility> | 
| 10 #include <vector> | 11 #include <vector> | 
| 11 | 12 | 
| 12 #include "ash/ash_switches.h" | 13 #include "ash/ash_switches.h" | 
| 13 #include "ash/shell.h" | 14 #include "ash/shell.h" | 
| 14 #include "base/bind.h" | 15 #include "base/bind.h" | 
| 15 #include "base/callback.h" | 16 #include "base/callback.h" | 
| 16 #include "base/command_line.h" | 17 #include "base/command_line.h" | 
| 17 #include "base/files/file_util.h" | 18 #include "base/files/file_util.h" | 
| 18 #include "base/lazy_instance.h" | 19 #include "base/lazy_instance.h" | 
| 19 #include "base/linux_util.h" | 20 #include "base/linux_util.h" | 
| 20 #include "base/macros.h" | 21 #include "base/macros.h" | 
|  | 22 #include "base/memory/ptr_util.h" | 
| 21 #include "base/path_service.h" | 23 #include "base/path_service.h" | 
| 22 #include "base/strings/string_number_conversions.h" | 24 #include "base/strings/string_number_conversions.h" | 
| 23 #include "base/strings/string_split.h" | 25 #include "base/strings/string_split.h" | 
| 24 #include "base/sys_info.h" | 26 #include "base/sys_info.h" | 
| 25 #include "base/task_runner_util.h" | 27 #include "base/task_runner_util.h" | 
| 26 #include "chrome/browser/browser_process.h" | 28 #include "chrome/browser/browser_process.h" | 
| 27 #include "chrome/browser/browser_process_platform_part_chromeos.h" | 29 #include "chrome/browser/browser_process_platform_part_chromeos.h" | 
| 28 #include "chrome/browser/chrome_notification_types.h" | 30 #include "chrome/browser/chrome_notification_types.h" | 
| 29 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 31 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 
| 30 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" | 32 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" | 
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 212     bluez::BluezDBusManager::Initialize( | 214     bluez::BluezDBusManager::Initialize( | 
| 213         DBusThreadManager::Get()->GetSystemBus(), | 215         DBusThreadManager::Get()->GetSystemBus(), | 
| 214         chromeos::DBusThreadManager::Get()->IsUsingStub( | 216         chromeos::DBusThreadManager::Get()->IsUsingStub( | 
| 215             chromeos::DBusClientBundle::BLUETOOTH)); | 217             chromeos::DBusClientBundle::BLUETOOTH)); | 
| 216 | 218 | 
| 217     PowerPolicyController::Initialize( | 219     PowerPolicyController::Initialize( | 
| 218         DBusThreadManager::Get()->GetPowerManagerClient()); | 220         DBusThreadManager::Get()->GetPowerManagerClient()); | 
| 219 | 221 | 
| 220     ScopedVector<CrosDBusService::ServiceProviderInterface> service_providers; | 222     ScopedVector<CrosDBusService::ServiceProviderInterface> service_providers; | 
| 221     service_providers.push_back(ProxyResolutionServiceProvider::Create( | 223     service_providers.push_back(ProxyResolutionServiceProvider::Create( | 
| 222         make_scoped_ptr(new ChromeProxyResolverDelegate()))); | 224         base::WrapUnique(new ChromeProxyResolverDelegate()))); | 
| 223     service_providers.push_back(new DisplayPowerServiceProvider( | 225     service_providers.push_back(new DisplayPowerServiceProvider( | 
| 224         make_scoped_ptr(new ChromeDisplayPowerServiceProviderDelegate))); | 226         base::WrapUnique(new ChromeDisplayPowerServiceProviderDelegate))); | 
| 225     service_providers.push_back(new LivenessServiceProvider); | 227     service_providers.push_back(new LivenessServiceProvider); | 
| 226     service_providers.push_back(new ScreenLockServiceProvider); | 228     service_providers.push_back(new ScreenLockServiceProvider); | 
| 227     service_providers.push_back(new ConsoleServiceProvider( | 229     service_providers.push_back(new ConsoleServiceProvider( | 
| 228         make_scoped_ptr(new ChromeConsoleServiceProviderDelegate))); | 230         base::WrapUnique(new ChromeConsoleServiceProviderDelegate))); | 
| 229     service_providers.push_back(new KioskInfoService); | 231     service_providers.push_back(new KioskInfoService); | 
| 230     CrosDBusService::Initialize(std::move(service_providers)); | 232     CrosDBusService::Initialize(std::move(service_providers)); | 
| 231 | 233 | 
| 232     // Initialize PowerDataCollector after DBusThreadManager is initialized. | 234     // Initialize PowerDataCollector after DBusThreadManager is initialized. | 
| 233     PowerDataCollector::Initialize(); | 235     PowerDataCollector::Initialize(); | 
| 234 | 236 | 
| 235     LoginState::Initialize(); | 237     LoginState::Initialize(); | 
| 236     SystemSaltGetter::Initialize(); | 238     SystemSaltGetter::Initialize(); | 
| 237     TPMTokenLoader::Initialize(); | 239     TPMTokenLoader::Initialize(); | 
| 238     CertLoader::Initialize(); | 240     CertLoader::Initialize(); | 
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 281     PowerDataCollector::Shutdown(); | 283     PowerDataCollector::Shutdown(); | 
| 282     PowerPolicyController::Shutdown(); | 284     PowerPolicyController::Shutdown(); | 
| 283     device::BluetoothAdapterFactory::Shutdown(); | 285     device::BluetoothAdapterFactory::Shutdown(); | 
| 284     bluez::BluezDBusManager::Shutdown(); | 286     bluez::BluezDBusManager::Shutdown(); | 
| 285 | 287 | 
| 286     // NOTE: This must only be called if Initialize() was called. | 288     // NOTE: This must only be called if Initialize() was called. | 
| 287     DBusThreadManager::Shutdown(); | 289     DBusThreadManager::Shutdown(); | 
| 288   } | 290   } | 
| 289 | 291 | 
| 290  private: | 292  private: | 
| 291   scoped_ptr<NetworkConnectDelegateChromeOS> network_connect_delegate_; | 293   std::unique_ptr<NetworkConnectDelegateChromeOS> network_connect_delegate_; | 
| 292 | 294 | 
| 293   DISALLOW_COPY_AND_ASSIGN(DBusServices); | 295   DISALLOW_COPY_AND_ASSIGN(DBusServices); | 
| 294 }; | 296 }; | 
| 295 | 297 | 
| 296 }  //  namespace internal | 298 }  //  namespace internal | 
| 297 | 299 | 
| 298 // ChromeBrowserMainPartsChromeos ---------------------------------------------- | 300 // ChromeBrowserMainPartsChromeos ---------------------------------------------- | 
| 299 | 301 | 
| 300 ChromeBrowserMainPartsChromeos::ChromeBrowserMainPartsChromeos( | 302 ChromeBrowserMainPartsChromeos::ChromeBrowserMainPartsChromeos( | 
| 301     const content::MainFunctionParams& parameters) | 303     const content::MainFunctionParams& parameters) | 
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 394 | 396 | 
| 395   // Set the crypto thread after the IO thread has been created/started. | 397   // Set the crypto thread after the IO thread has been created/started. | 
| 396   TPMTokenLoader::Get()->SetCryptoTaskRunner( | 398   TPMTokenLoader::Get()->SetCryptoTaskRunner( | 
| 397       content::BrowserThread::GetMessageLoopProxyForThread( | 399       content::BrowserThread::GetMessageLoopProxyForThread( | 
| 398           content::BrowserThread::IO)); | 400           content::BrowserThread::IO)); | 
| 399 | 401 | 
| 400   CrasAudioHandler::Initialize( | 402   CrasAudioHandler::Initialize( | 
| 401       new AudioDevicesPrefHandlerImpl(g_browser_process->local_state())); | 403       new AudioDevicesPrefHandlerImpl(g_browser_process->local_state())); | 
| 402 | 404 | 
| 403   quirks::QuirksManager::Initialize( | 405   quirks::QuirksManager::Initialize( | 
| 404       scoped_ptr<quirks::QuirksManager::Delegate>( | 406       std::unique_ptr<quirks::QuirksManager::Delegate>( | 
| 405           new quirks::QuirksManagerDelegateImpl()), | 407           new quirks::QuirksManagerDelegateImpl()), | 
| 406       content::BrowserThread::GetBlockingPool(), | 408       content::BrowserThread::GetBlockingPool(), | 
| 407       g_browser_process->local_state(), | 409       g_browser_process->local_state(), | 
| 408       g_browser_process->system_request_context()); | 410       g_browser_process->system_request_context()); | 
| 409 | 411 | 
| 410   // Start loading machine statistics here. StatisticsProvider::Shutdown() | 412   // Start loading machine statistics here. StatisticsProvider::Shutdown() | 
| 411   // will ensure that loading is aborted on early exit. | 413   // will ensure that loading is aborted on early exit. | 
| 412   bool load_oem_statistics = !StartupUtils::IsOobeCompleted(); | 414   bool load_oem_statistics = !StartupUtils::IsOobeCompleted(); | 
| 413   system::StatisticsProvider::GetInstance()->StartLoadingMachineStatistics( | 415   system::StatisticsProvider::GetInstance()->StartLoadingMachineStatistics( | 
| 414       content::BrowserThread::GetMessageLoopProxyForThread( | 416       content::BrowserThread::GetMessageLoopProxyForThread( | 
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 552             << " with hash: " << user_id_hash; | 554             << " with hash: " << user_id_hash; | 
| 553   } | 555   } | 
| 554 } | 556 } | 
| 555 | 557 | 
| 556 class GuestLanguageSetCallbackData { | 558 class GuestLanguageSetCallbackData { | 
| 557  public: | 559  public: | 
| 558   explicit GuestLanguageSetCallbackData(Profile* profile) : profile(profile) { | 560   explicit GuestLanguageSetCallbackData(Profile* profile) : profile(profile) { | 
| 559   } | 561   } | 
| 560 | 562 | 
| 561   // Must match SwitchLanguageCallback type. | 563   // Must match SwitchLanguageCallback type. | 
| 562   static void Callback(const scoped_ptr<GuestLanguageSetCallbackData>& self, | 564   static void Callback( | 
| 563                        const locale_util::LanguageSwitchResult& result); | 565       const std::unique_ptr<GuestLanguageSetCallbackData>& self, | 
|  | 566       const locale_util::LanguageSwitchResult& result); | 
| 564 | 567 | 
| 565   Profile* profile; | 568   Profile* profile; | 
| 566 }; | 569 }; | 
| 567 | 570 | 
| 568 // static | 571 // static | 
| 569 void GuestLanguageSetCallbackData::Callback( | 572 void GuestLanguageSetCallbackData::Callback( | 
| 570     const scoped_ptr<GuestLanguageSetCallbackData>& self, | 573     const std::unique_ptr<GuestLanguageSetCallbackData>& self, | 
| 571     const locale_util::LanguageSwitchResult& result) { | 574     const locale_util::LanguageSwitchResult& result) { | 
| 572   input_method::InputMethodManager* manager = | 575   input_method::InputMethodManager* manager = | 
| 573       input_method::InputMethodManager::Get(); | 576       input_method::InputMethodManager::Get(); | 
| 574   scoped_refptr<input_method::InputMethodManager::State> ime_state = | 577   scoped_refptr<input_method::InputMethodManager::State> ime_state = | 
| 575       manager->GetActiveIMEState(); | 578       manager->GetActiveIMEState(); | 
| 576   // For guest mode, we should always use the first login input methods. | 579   // For guest mode, we should always use the first login input methods. | 
| 577   // This is to keep consistency with UserSessionManager::SetFirstLoginPrefs(). | 580   // This is to keep consistency with UserSessionManager::SetFirstLoginPrefs(). | 
| 578   // See crbug.com/530808. | 581   // See crbug.com/530808. | 
| 579   std::vector<std::string> input_methods; | 582   std::vector<std::string> input_methods; | 
| 580   manager->GetInputMethodUtil()->GetFirstLoginInputMethodIds( | 583   manager->GetInputMethodUtil()->GetFirstLoginInputMethodIds( | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 600   } | 603   } | 
| 601 | 604 | 
| 602   // Finally, activate the first login input method. | 605   // Finally, activate the first login input method. | 
| 603   const std::vector<std::string>& login_input_methods = | 606   const std::vector<std::string>& login_input_methods = | 
| 604       manager->GetInputMethodUtil()->GetHardwareLoginInputMethodIds(); | 607       manager->GetInputMethodUtil()->GetHardwareLoginInputMethodIds(); | 
| 605   ime_state->ChangeInputMethod(login_input_methods[0], | 608   ime_state->ChangeInputMethod(login_input_methods[0], | 
| 606                                false /* show_message */); | 609                                false /* show_message */); | 
| 607 } | 610 } | 
| 608 | 611 | 
| 609 void SetGuestLocale(Profile* const profile) { | 612 void SetGuestLocale(Profile* const profile) { | 
| 610   scoped_ptr<GuestLanguageSetCallbackData> data( | 613   std::unique_ptr<GuestLanguageSetCallbackData> data( | 
| 611       new GuestLanguageSetCallbackData(profile)); | 614       new GuestLanguageSetCallbackData(profile)); | 
| 612   locale_util::SwitchLanguageCallback callback(base::Bind( | 615   locale_util::SwitchLanguageCallback callback(base::Bind( | 
| 613       &GuestLanguageSetCallbackData::Callback, base::Passed(std::move(data)))); | 616       &GuestLanguageSetCallbackData::Callback, base::Passed(std::move(data)))); | 
| 614   const user_manager::User* const user = | 617   const user_manager::User* const user = | 
| 615       ProfileHelper::Get()->GetUserByProfile(profile); | 618       ProfileHelper::Get()->GetUserByProfile(profile); | 
| 616   UserSessionManager::GetInstance()->RespectLocalePreference( | 619   UserSessionManager::GetInstance()->RespectLocalePreference( | 
| 617       profile, user, callback); | 620       profile, user, callback); | 
| 618 } | 621 } | 
| 619 | 622 | 
| 620 void ChromeBrowserMainPartsChromeos::PostProfileInit() { | 623 void ChromeBrowserMainPartsChromeos::PostProfileInit() { | 
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 668   g_browser_process->platform_part()->SessionManager()->Start(); | 671   g_browser_process->platform_part()->SessionManager()->Start(); | 
| 669 | 672 | 
| 670   // Guest user profile is never initialized with locale settings, | 673   // Guest user profile is never initialized with locale settings, | 
| 671   // so we need special handling for Guest session. | 674   // so we need special handling for Guest session. | 
| 672   if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) | 675   if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) | 
| 673     SetGuestLocale(profile()); | 676     SetGuestLocale(profile()); | 
| 674 | 677 | 
| 675   peripheral_battery_observer_.reset(new PeripheralBatteryObserver()); | 678   peripheral_battery_observer_.reset(new PeripheralBatteryObserver()); | 
| 676 | 679 | 
| 677   renderer_freezer_.reset( | 680   renderer_freezer_.reset( | 
| 678       new RendererFreezer(scoped_ptr<RendererFreezer::Delegate>( | 681       new RendererFreezer(std::unique_ptr<RendererFreezer::Delegate>( | 
| 679           new FreezerCgroupProcessManager()))); | 682           new FreezerCgroupProcessManager()))); | 
| 680 | 683 | 
| 681   g_browser_process->platform_part()->InitializeAutomaticRebootManager(); | 684   g_browser_process->platform_part()->InitializeAutomaticRebootManager(); | 
| 682   g_browser_process->platform_part()->InitializeDeviceDisablingManager(); | 685   g_browser_process->platform_part()->InitializeDeviceDisablingManager(); | 
| 683 | 686 | 
| 684   // This observer cannot be created earlier because it requires the shell to be | 687   // This observer cannot be created earlier because it requires the shell to be | 
| 685   // available. | 688   // available. | 
| 686   idle_action_warning_observer_.reset(new IdleActionWarningObserver()); | 689   idle_action_warning_observer_.reset(new IdleActionWarningObserver()); | 
| 687 | 690 | 
| 688   ChromeBrowserMainPartsLinux::PostProfileInit(); | 691   ChromeBrowserMainPartsLinux::PostProfileInit(); | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 735     // These are dependent on the ash::Shell singleton already having been | 738     // These are dependent on the ash::Shell singleton already having been | 
| 736     // initialized. Consequently, these cannot be used when running as a mus | 739     // initialized. Consequently, these cannot be used when running as a mus | 
| 737     // client. | 740     // client. | 
| 738     // TODO(oshima): Remove ash dependency in PowerButtonObserver. | 741     // TODO(oshima): Remove ash dependency in PowerButtonObserver. | 
| 739     // crbug.com/408832. | 742     // crbug.com/408832. | 
| 740     power_button_observer_.reset(new PowerButtonObserver); | 743     power_button_observer_.reset(new PowerButtonObserver); | 
| 741     data_promo_notification_.reset(new DataPromoNotification()); | 744     data_promo_notification_.reset(new DataPromoNotification()); | 
| 742 | 745 | 
| 743     keyboard_event_rewriters_.reset(new EventRewriterController()); | 746     keyboard_event_rewriters_.reset(new EventRewriterController()); | 
| 744     keyboard_event_rewriters_->AddEventRewriter( | 747     keyboard_event_rewriters_->AddEventRewriter( | 
| 745         scoped_ptr<ui::EventRewriter>(new KeyboardDrivenEventRewriter())); | 748         std::unique_ptr<ui::EventRewriter>(new KeyboardDrivenEventRewriter())); | 
| 746     keyboard_event_rewriters_->AddEventRewriter( | 749     keyboard_event_rewriters_->AddEventRewriter( | 
| 747         scoped_ptr<ui::EventRewriter>(new SpokenFeedbackEventRewriter())); | 750         std::unique_ptr<ui::EventRewriter>(new SpokenFeedbackEventRewriter())); | 
| 748     keyboard_event_rewriters_->AddEventRewriter( | 751     keyboard_event_rewriters_->AddEventRewriter( | 
| 749         scoped_ptr<ui::EventRewriter>(new EventRewriter( | 752         std::unique_ptr<ui::EventRewriter>(new EventRewriter( | 
| 750             ash::Shell::GetInstance()->sticky_keys_controller()))); | 753             ash::Shell::GetInstance()->sticky_keys_controller()))); | 
| 751     keyboard_event_rewriters_->Init(); | 754     keyboard_event_rewriters_->Init(); | 
| 752   } | 755   } | 
| 753 | 756 | 
| 754   ChromeBrowserMainPartsLinux::PostBrowserStart(); | 757   ChromeBrowserMainPartsLinux::PostBrowserStart(); | 
| 755 } | 758 } | 
| 756 | 759 | 
| 757 // Shut down services before the browser process, etc are destroyed. | 760 // Shut down services before the browser process, etc are destroyed. | 
| 758 void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { | 761 void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { | 
| 759   chromeos::ResourceReporter::GetInstance()->StopMonitoring(); | 762   chromeos::ResourceReporter::GetInstance()->StopMonitoring(); | 
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 873   // Destroy DBus services immediately after threads are stopped. | 876   // Destroy DBus services immediately after threads are stopped. | 
| 874   dbus_services_.reset(); | 877   dbus_services_.reset(); | 
| 875 | 878 | 
| 876   ChromeBrowserMainPartsLinux::PostDestroyThreads(); | 879   ChromeBrowserMainPartsLinux::PostDestroyThreads(); | 
| 877 | 880 | 
| 878   // Destroy DeviceSettingsService after g_browser_process. | 881   // Destroy DeviceSettingsService after g_browser_process. | 
| 879   DeviceSettingsService::Shutdown(); | 882   DeviceSettingsService::Shutdown(); | 
| 880 } | 883 } | 
| 881 | 884 | 
| 882 }  //  namespace chromeos | 885 }  //  namespace chromeos | 
| OLD | NEW | 
|---|