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

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

Issue 2554743003: arc: Fix double provisioning failure reporting. (Closed)
Patch Set: rebase / todo added Created 4 years 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_session_manager.cc
diff --git a/chrome/browser/chromeos/arc/arc_session_manager.cc b/chrome/browser/chromeos/arc/arc_session_manager.cc
index 198404f297cec684a9b8a02a452b5b7356243ff9..6107f7ff95a49ec38d9202f69016dcf119eb30e8 100644
--- a/chrome/browser/chromeos/arc/arc_session_manager.cc
+++ b/chrome/browser/chromeos/arc/arc_session_manager.cc
@@ -274,6 +274,18 @@ void ArcSessionManager::OnProvisioningFinished(ProvisioningResult result) {
// guaranty set here. prefs::kArcDataRemoveRequested is also can be active
// for now.
+ if (provisioning_reported_) {
+ // We don't expect ProvisioningResult::SUCCESS is reported twice or reported
+ // after an error.
+ DCHECK_NE(result, ProvisioningResult::SUCCESS);
+ // TODO (khmel): Consider changing LOG to NOTREACHED once we guaranty that
+ // no double message can happen in production.
+ LOG(WARNING) << " Provisioning result was already reported. Ignoring "
+ << " additional result " << static_cast<int>(result) << ".";
+ return;
+ }
+ provisioning_reported_ = true;
+
if (result == ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR) {
if (IsArcKioskMode()) {
VLOG(1) << "Robot account auth code fetching error";
@@ -637,6 +649,8 @@ void ArcSessionManager::StartArc() {
// Arc must be started only if no pending data removal request exists.
DCHECK(!profile_->GetPrefs()->GetBoolean(prefs::kArcDataRemoveRequested));
+ provisioning_reported_ = false;
+
arc_bridge_service()->RequestStart();
SetState(State::ACTIVE);
}
« no previous file with comments | « chrome/browser/chromeos/arc/arc_session_manager.h ('k') | chrome/browser/chromeos/arc/arc_session_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698