| 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);
|
| }
|
|
|