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 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 | 365 |
366 ChromeBrowserMainPartsChromeos::ChromeBrowserMainPartsChromeos( | 366 ChromeBrowserMainPartsChromeos::ChromeBrowserMainPartsChromeos( |
367 const content::MainFunctionParams& parameters) | 367 const content::MainFunctionParams& parameters) |
368 : ChromeBrowserMainPartsLinux(parameters) { | 368 : ChromeBrowserMainPartsLinux(parameters) { |
369 } | 369 } |
370 | 370 |
371 ChromeBrowserMainPartsChromeos::~ChromeBrowserMainPartsChromeos() { | 371 ChromeBrowserMainPartsChromeos::~ChromeBrowserMainPartsChromeos() { |
372 if (KioskModeSettings::Get()->IsKioskModeEnabled()) | 372 if (KioskModeSettings::Get()->IsKioskModeEnabled()) |
373 ShutdownKioskModeScreensaver(); | 373 ShutdownKioskModeScreensaver(); |
374 | 374 |
375 dbus_services_.reset(); | |
376 | |
377 // To be precise, logout (browser shutdown) is not yet done, but the | 375 // To be precise, logout (browser shutdown) is not yet done, but the |
378 // remaining work is negligible, hence we say LogoutDone here. | 376 // remaining work is negligible, hence we say LogoutDone here. |
379 BootTimesLoader::Get()->AddLogoutTimeMarker("LogoutDone", false); | 377 BootTimesLoader::Get()->AddLogoutTimeMarker("LogoutDone", false); |
380 BootTimesLoader::Get()->WriteLogoutTimes(); | 378 BootTimesLoader::Get()->WriteLogoutTimes(); |
381 } | 379 } |
382 | 380 |
383 // content::BrowserMainParts and ChromeBrowserMainExtraParts overrides --------- | 381 // content::BrowserMainParts and ChromeBrowserMainExtraParts overrides --------- |
384 | 382 |
385 void ChromeBrowserMainPartsChromeos::PreEarlyInitialization() { | 383 void ChromeBrowserMainPartsChromeos::PreEarlyInitialization() { |
386 CommandLine* singleton_command_line = CommandLine::ForCurrentProcess(); | 384 CommandLine* singleton_command_line = CommandLine::ForCurrentProcess(); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 message_loop->AddObserver(g_message_loop_observer.Pointer()); | 440 message_loop->AddObserver(g_message_loop_observer.Pointer()); |
443 | 441 |
444 dbus_services_.reset(new internal::DBusServices(parameters())); | 442 dbus_services_.reset(new internal::DBusServices(parameters())); |
445 | 443 |
446 ChromeBrowserMainPartsLinux::PostMainMessageLoopStart(); | 444 ChromeBrowserMainPartsLinux::PostMainMessageLoopStart(); |
447 } | 445 } |
448 | 446 |
449 // Threads are initialized between MainMessageLoopStart and MainMessageLoopRun. | 447 // Threads are initialized between MainMessageLoopStart and MainMessageLoopRun. |
450 // about_flags settings are applied in ChromeBrowserMainParts::PreCreateThreads. | 448 // about_flags settings are applied in ChromeBrowserMainParts::PreCreateThreads. |
451 void ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun() { | 449 void ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun() { |
| 450 // Set the crypto thread after the IO thread has been created/started. |
| 451 NetworkHandler::Get()->cert_loader()->SetCryptoTaskRunner( |
| 452 content::BrowserThread::GetMessageLoopProxyForThread( |
| 453 content::BrowserThread::IO)); |
| 454 |
452 if (ash::switches::UseNewAudioHandler()) { | 455 if (ash::switches::UseNewAudioHandler()) { |
453 CrasAudioHandler::Initialize( | 456 CrasAudioHandler::Initialize( |
454 AudioDevicesPrefHandler::Create(g_browser_process->local_state())); | 457 AudioDevicesPrefHandler::Create(g_browser_process->local_state())); |
455 } else { | 458 } else { |
456 AudioHandler::Initialize( | 459 AudioHandler::Initialize( |
457 AudioPrefHandler::Create(g_browser_process->local_state())); | 460 AudioPrefHandler::Create(g_browser_process->local_state())); |
458 } | 461 } |
459 | 462 |
460 if (!StartupUtils::IsOobeCompleted()) | 463 if (!StartupUtils::IsOobeCompleted()) |
461 system::StatisticsProvider::GetInstance()->LoadOemManifest(); | 464 system::StatisticsProvider::GetInstance()->LoadOemManifest(); |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
820 ChromeBrowserMainPartsLinux::PostMainMessageLoopRun(); | 823 ChromeBrowserMainPartsLinux::PostMainMessageLoopRun(); |
821 | 824 |
822 // Destroy the UserManager after ash has been destroyed and | 825 // Destroy the UserManager after ash has been destroyed and |
823 // ChromeBrowserMainPartsLinux::PostMainMessageLoopRun run. The latter might | 826 // ChromeBrowserMainPartsLinux::PostMainMessageLoopRun run. The latter might |
824 // trigger MergeSessionThrottle::ShouldShowMergeSessionPage, which requires | 827 // trigger MergeSessionThrottle::ShouldShowMergeSessionPage, which requires |
825 // the UserManager to exist. | 828 // the UserManager to exist. |
826 UserManager::Destroy(); | 829 UserManager::Destroy(); |
827 } | 830 } |
828 | 831 |
829 void ChromeBrowserMainPartsChromeos::PostDestroyThreads() { | 832 void ChromeBrowserMainPartsChromeos::PostDestroyThreads() { |
| 833 // Destroy DBus services immediately after threads are stopped. |
| 834 dbus_services_.reset(); |
| 835 |
830 ChromeBrowserMainPartsLinux::PostDestroyThreads(); | 836 ChromeBrowserMainPartsLinux::PostDestroyThreads(); |
| 837 |
831 // Destroy DeviceSettingsService after g_browser_process. | 838 // Destroy DeviceSettingsService after g_browser_process. |
832 DeviceSettingsService::Shutdown(); | 839 DeviceSettingsService::Shutdown(); |
833 } | 840 } |
834 | 841 |
835 void ChromeBrowserMainPartsChromeos::SetupPlatformFieldTrials() { | 842 void ChromeBrowserMainPartsChromeos::SetupPlatformFieldTrials() { |
836 default_pinned_apps_field_trial::SetupTrial(); | 843 default_pinned_apps_field_trial::SetupTrial(); |
837 } | 844 } |
838 | 845 |
839 } // namespace chromeos | 846 } // namespace chromeos |
OLD | NEW |