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

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

Issue 2504583002: Merge provisioning success/error handling. (Closed)
Patch Set: Created 4 years, 1 month 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 7b6e72dbe2aa2377775c873861fab0977297d5a6..d91582caa06240c138c4a1fd8f96b15617acc2f9 100644
--- a/chrome/browser/chromeos/arc/arc_auth_service.cc
+++ b/chrome/browser/chromeos/arc/arc_auth_service.cc
@@ -287,7 +287,7 @@ void ArcAuthService::OnInstanceReady() {
void ArcAuthService::OnBridgeStopped(ArcBridgeService::StopReason reason) {
// TODO(crbug.com/625923): Use |reason| to report more detailed errors.
if (arc_sign_in_timer_.IsRunning()) {
- OnSignInFailedInternal(ProvisioningResult::ARC_STOPPED);
+ OnProvisioningFinished(ProvisioningResult::ARC_STOPPED);
}
if (clear_required_) {
@@ -443,48 +443,51 @@ void ArcAuthService::PrepareContextForAuthCodeRequest() {
void ArcAuthService::OnSignInComplete() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK_EQ(state_, State::ACTIVE);
-
- if (!sign_in_time_.is_null()) {
- arc_sign_in_timer_.Stop();
- UpdateProvisioningTiming(base::Time::Now() - sign_in_time_, true,
- policy_util::IsAccountManaged(profile_));
- UpdateProvisioningResultUMA(ProvisioningResult::SUCCESS,
- policy_util::IsAccountManaged(profile_));
- }
-
- if (support_host_)
- support_host_->Close();
-
- if (profile_->GetPrefs()->GetBoolean(prefs::kArcSignedIn))
- return;
-
- profile_->GetPrefs()->SetBoolean(prefs::kArcSignedIn, true);
- if (!IsOptInVerificationDisabled()) {
- playstore_launcher_.reset(
- new ArcAppLauncher(profile_, kPlayStoreAppId, true));
- }
-
- for (auto& observer : observer_list_)
- observer.OnInitialStart();
+ OnProvisioningFinished(ProvisioningResult::SUCCESS);
}
void ArcAuthService::OnSignInFailed(mojom::ArcSignInFailureReason reason) {
- OnSignInFailedInternal(
+ OnProvisioningFinished(
ConvertArcSignInFailureReasonToProvisioningResult(reason));
}
-void ArcAuthService::OnSignInFailedInternal(ProvisioningResult result) {
+void ArcAuthService::OnProvisioningFinished(ProvisioningResult result) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK_EQ(state_, State::ACTIVE);
- if (!sign_in_time_.is_null()) {
+ if (result == ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR) {
+ // For backword compatibility, use NETWORK_ERROR for
Luis Héctor Chávez 2016/11/15 23:40:50 nit: s/backword/backwards/
hidehiko 2016/11/17 11:04:54 Done.
+ // CHROME_SERVER_COMMUNICATION_ERROR case.
+ UpdateOptInCancelUMA(OptInCancelReason::NETWORK_ERROR);
+ } else if (!sign_in_time_.is_null()) {
arc_sign_in_timer_.Stop();
- UpdateProvisioningTiming(base::Time::Now() - sign_in_time_, false,
+ UpdateProvisioningTiming(base::Time::Now() - sign_in_time_,
+ result == ProvisioningResult::SUCCESS,
policy_util::IsAccountManaged(profile_));
- UpdateOptInCancelUMA(OptInCancelReason::CLOUD_PROVISION_FLOW_FAIL);
UpdateProvisioningResultUMA(result,
policy_util::IsAccountManaged(profile_));
+ if (result != ProvisioningResult::SUCCESS) {
Luis Héctor Chávez 2016/11/15 23:40:50 nit: you can elide braces
hidehiko 2016/11/17 11:04:54 Done.
+ UpdateOptInCancelUMA(OptInCancelReason::CLOUD_PROVISION_FLOW_FAIL);
+ }
+ }
+
+ if (result == ProvisioningResult::SUCCESS) {
+ if (support_host_)
+ support_host_->Close();
+
+ if (profile_->GetPrefs()->GetBoolean(prefs::kArcSignedIn))
+ return;
+
+ profile_->GetPrefs()->SetBoolean(prefs::kArcSignedIn, true);
+ if (!IsOptInVerificationDisabled()) {
+ playstore_launcher_.reset(
+ new ArcAppLauncher(profile_, kPlayStoreAppId, true));
+ }
+
+ for (auto& observer : observer_list_)
+ observer.OnInitialStart();
+ return;
}
ArcSupportHost::Error error;
@@ -511,12 +514,16 @@ void ArcAuthService::OnSignInFailedInternal(ProvisioningResult result) {
case ProvisioningResult::CLOUD_PROVISION_FLOW_INTERNAL_ERROR:
error = ArcSupportHost::Error::SIGN_IN_CLOUD_PROVISION_FLOW_FAIL_ERROR;
break;
+ case ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR:
+ error = ArcSupportHost::Error::SERVER_COMMUNICATION_ERROR;
+ break;
default:
error = ArcSupportHost::Error::SIGN_IN_UNKNOWN_ERROR;
break;
}
- if (result == ProvisioningResult::ARC_STOPPED) {
+ if (result == ProvisioningResult::ARC_STOPPED ||
+ result == ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR) {
if (profile_->GetPrefs()->HasPrefPath(prefs::kArcSignedIn))
profile_->GetPrefs()->SetBoolean(prefs::kArcSignedIn, false);
ShutdownBridge();
@@ -792,7 +799,7 @@ void ArcAuthService::OnAuthCodeObtained(const std::string& auth_code) {
void ArcAuthService::OnArcSignInTimeout() {
LOG(ERROR) << "Timed out waiting for first sign in.";
- OnSignInFailedInternal(ProvisioningResult::OVERALL_SIGN_IN_TIMEOUT);
+ OnProvisioningFinished(ProvisioningResult::OVERALL_SIGN_IN_TIMEOUT);
}
void ArcAuthService::CancelAuthCode() {
@@ -888,12 +895,8 @@ void ArcAuthService::StartUI() {
}
void ArcAuthService::OnPrepareContextFailed() {
- ShutdownBridge();
- if (support_host_) {
- support_host_->ShowError(ArcSupportHost::Error::SERVER_COMMUNICATION_ERROR,
- false);
- }
- UpdateOptInCancelUMA(OptInCancelReason::NETWORK_ERROR);
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ OnProvisioningFinished(ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR);
}
void ArcAuthService::OnAuthCodeSuccess(const std::string& auth_code) {
@@ -902,12 +905,7 @@ void ArcAuthService::OnAuthCodeSuccess(const std::string& auth_code) {
void ArcAuthService::OnAuthCodeFailed() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- ShutdownBridge();
- if (support_host_) {
- support_host_->ShowError(ArcSupportHost::Error::SERVER_COMMUNICATION_ERROR,
- false);
- }
- UpdateOptInCancelUMA(OptInCancelReason::NETWORK_ERROR);
+ OnProvisioningFinished(ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR);
}
void ArcAuthService::StartArcAndroidManagementCheck() {

Powered by Google App Engine
This is Rietveld 408576698