Chromium Code Reviews| 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 31595541115c22fa6f4ec32dd325f565805f6fdf..aac3986e0d0792d9531154cb2ae3d3ccc4c9dca2 100644 |
| --- a/chrome/browser/chromeos/arc/arc_session_manager.cc |
| +++ b/chrome/browser/chromeos/arc/arc_session_manager.cc |
| @@ -246,6 +246,17 @@ void ArcSessionManager::OnArcDataRemoved(bool success) { |
| void ArcSessionManager::OnProvisioningFinished(ProvisioningResult result) { |
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| + |
| + if (provisioning_reported_) { |
| + // We don't expect ProvisioningResult::SUCCESS is reported twice or reported |
| + // after an error. |
| + DCHECK_NE(result, ProvisioningResult::SUCCESS); |
| + LOG(WARNING) << " Provisioning result was already reported. Ignoring " |
|
hidehiko
2016/12/06 18:50:01
I'm ok with the current code for the short term fi
khmel
2016/12/06 22:49:57
Done.
|
| + << " additional result " << static_cast<int>(result) << "."; |
| + return; |
| + } |
| + provisioning_reported_ = true; |
| + |
| DCHECK_EQ(state_, State::ACTIVE); |
| if (result == ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR) { |
| @@ -591,6 +602,7 @@ void ArcSessionManager::StopAndEnableArc() { |
| void ArcSessionManager::StartArc() { |
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| + provisioning_reported_ = false; |
| arc_bridge_service()->RequestStart(); |
| SetState(State::ACTIVE); |
| } |