Index: chrome/browser/chromeos/login/ui/login_display_host_impl.cc |
diff --git a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc |
index c2faa3c3ed4d0c2191d0d95ddfeebc267ae036f9..cf202b0911eaf03aab624cad25ba9de1e7c4412b 100644 |
--- a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc |
+++ b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc |
@@ -55,7 +55,8 @@ |
#include "chrome/browser/chromeos/system/input_device_settings.h" |
#include "chrome/browser/chromeos/system/timezone_util.h" |
#include "chrome/browser/chromeos/ui/focus_ring_controller.h" |
-#include "chrome/browser/lifetime/application_lifetime.h" |
+#include "chrome/browser/lifetime/keep_alive_types.h" |
+#include "chrome/browser/lifetime/scoped_keep_alive.h" |
#include "chrome/browser/profiles/profile_manager.h" |
#include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h" |
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" |
@@ -313,7 +314,9 @@ LoginDisplayHostImpl::LoginDisplayHostImpl(const gfx::Rect& background_bounds) |
default_host_ = this; |
// Make sure chrome won't exit while we are at login/oobe screen. |
- chrome::IncrementKeepAliveCount(); |
+ // Is released when we get out of scope. |
+ ScopedKeepAlive keep_alive(KeepAliveOrigin::LOGIN_DISPLAY_HOST_IMPL, |
+ KeepAliveRestartOption::DISABLED); |
bool is_registered = StartupUtils::IsDeviceRegistered(); |
bool zero_delay_enabled = WizardController::IsZeroDelayEnabled(); |
@@ -402,9 +405,6 @@ LoginDisplayHostImpl::~LoginDisplayHostImpl() { |
views::FocusManager::set_arrow_key_traversal_enabled(false); |
ResetLoginWindowAndView(); |
- // Let chrome process exit after login/oobe screen if needed. |
- chrome::DecrementKeepAliveCount(); |
- |
default_host_ = nullptr; |
// TODO(tengs): This should be refactored. See crbug.com/314934. |
if (user_manager::UserManager::Get()->IsCurrentUserNew()) { |