Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2620)

Unified Diff: chrome/browser/chromeos/arc/arc_auth_service.cc

Issue 2111733002: arc: Handle closing OptIn window for managed Arc. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix comilation error Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/arc/arc_auth_service.cc
diff --git a/chrome/browser/chromeos/arc/arc_auth_service.cc b/chrome/browser/chromeos/arc/arc_auth_service.cc
index fa411b4d0c88bb02e3d88754c257cca16d1ac221..8b937c47deef3904aab403372dac6821c67f5374 100644
--- a/chrome/browser/chromeos/arc/arc_auth_service.cc
+++ b/chrome/browser/chromeos/arc/arc_auth_service.cc
@@ -452,6 +452,14 @@ void ArcAuthService::OnSyncedPrefChanged(const std::string& path,
}
}
+void ArcAuthService::StopArc() {
+ if (state_ != State::STOPPED) {
+ UpdateEnabledStateUMA(false);
+ profile_->GetPrefs()->SetBoolean(prefs::kArcSignedIn, false);
+ }
+ ShutdownBridgeAndCloseUI();
+}
+
void ArcAuthService::OnOptInPreferenceChanged() {
DCHECK(thread_checker.Get().CalledOnValidThread());
DCHECK(profile_);
@@ -460,11 +468,7 @@ void ArcAuthService::OnOptInPreferenceChanged() {
FOR_EACH_OBSERVER(Observer, observer_list_, OnOptInEnabled(arc_enabled));
if (!arc_enabled) {
- if (state_ != State::STOPPED) {
- UpdateEnabledStateUMA(false);
- profile_->GetPrefs()->SetBoolean(prefs::kArcSignedIn, false);
- }
- ShutdownBridgeAndCloseUI();
+ StopArc();
return;
}
@@ -585,19 +589,29 @@ void ArcAuthService::StartLso() {
void ArcAuthService::CancelAuthCode() {
DCHECK(thread_checker.Get().CalledOnValidThread());
- if (ui_page_ == UIPage::ERROR_WITH_FEEDBACK) {
- ShutdownBridge();
- if (profile_->GetPrefs()->HasPrefPath(prefs::kArcSignedIn))
- profile_->GetPrefs()->SetBoolean(prefs::kArcSignedIn, false);
+ if (state_ == State::NOT_INITIALIZED) {
+ NOTREACHED();
+ return;
}
+ // In case |state_| is ACTIVE, |ui_page_| can be START_PROGRESS (which means
+ // normal Arc booting) or ERROR or ERROR_WITH_FEEDBACK (in case Arc can not
+ // be started). If Arc is booting normally dont't stop it on progress close.
if (state_ != State::FETCHING_CODE && ui_page_ != UIPage::ERROR &&
- ui_page_ != UIPage::ERROR_WITH_FEEDBACK)
+ ui_page_ != UIPage::ERROR_WITH_FEEDBACK) {
return;
+ }
// Update UMA with user cancel only if error is not currently shown.
- if (ui_page_ != UIPage::ERROR && ui_page_ != UIPage::NO_PAGE)
+ if (ui_page_ != UIPage::ERROR && ui_page_ == UIPage::ERROR_WITH_FEEDBACK &&
+ ui_page_ != UIPage::NO_PAGE) {
UpdateOptInCancelUMA(OptInCancelReason::USER_CANCEL);
+ }
+
+ StopArc();
+
+ if (IsArcManaged())
+ return;
base::AutoReset<bool> auto_reset(&disable_arc_from_ui_, true);
DisableArc();
@@ -618,7 +632,14 @@ bool ArcAuthService::IsArcEnabled() const {
void ArcAuthService::EnableArc() {
DCHECK(thread_checker.Get().CalledOnValidThread());
DCHECK(profile_);
- profile_->GetPrefs()->SetBoolean(prefs::kArcEnabled, true);
+
+ if (!IsArcEnabled()) {
+ if (IsArcManaged())
+ return;
+ profile_->GetPrefs()->SetBoolean(prefs::kArcEnabled, true);
+ } else {
+ OnOptInPreferenceChanged();
+ }
}
void ArcAuthService::DisableArc() {

Powered by Google App Engine
This is Rietveld 408576698