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

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

Issue 2504583002: Merge provisioning success/error handling. (Closed)
Patch Set: Address comments. 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
« no previous file with comments | « chrome/browser/chromeos/arc/arc_auth_service.h ('k') | chrome/browser/chromeos/arc/arc_optin_uma.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 46fc1f85823611727b1a78486cc3408c198adb0e..f7b41cbbdbbf59283e74f91174ff0df9996d599c 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,50 @@ 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 backwards compatibility, use NETWORK_ERROR for
+ // 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)
+ 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 +513,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();
@@ -797,7 +803,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() {
@@ -893,12 +899,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) {
@@ -907,12 +909,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() {
« no previous file with comments | « chrome/browser/chromeos/arc/arc_auth_service.h ('k') | chrome/browser/chromeos/arc/arc_optin_uma.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698