Index: chrome/browser/chromeos/arc/arc_session_manager.cc |
diff --git a/chrome/browser/chromeos/arc/arc_session_manager.cc b/chrome/browser/chromeos/arc/arc_session_manager.cc |
index 3544f007a7645d368c16cdb8ec58aa1cd3f15a64..c7e942e18715b226ac7d4119e3f2f13ae25427f8 100644 |
--- a/chrome/browser/chromeos/arc/arc_session_manager.cc |
+++ b/chrome/browser/chromeos/arc/arc_session_manager.cc |
@@ -722,13 +722,15 @@ void ArcSessionManager::CancelAuthCode() { |
return; |
} |
- // In case |state_| is ACTIVE, UI page can be ARC_LOADING (which means normal |
- // ARC booting) or ERROR (in case ARC can not be started). If ARC is booting |
- // normally don't stop it on progress close. |
+ // If ARC failed to boot normally, stop ARC. Similarly, if the current page is |
+ // LSO, closing the window should stop ARC since the user activity chooses to |
+ // not sign in. In any other case, ARC is booting normally and the instance |
+ // should not be stopped. |
if ((state_ != State::SHOWING_TERMS_OF_SERVICE && |
state_ != State::CHECKING_ANDROID_MANAGEMENT) && |
(!support_host_ || |
- support_host_->ui_page() != ArcSupportHost::UIPage::ERROR)) { |
+ (support_host_->ui_page() != ArcSupportHost::UIPage::ERROR && |
+ support_host_->ui_page() != ArcSupportHost::UIPage::LSO))) { |
return; |
} |