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

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

Issue 2554743003: arc: Fix double provisioning failure reporting. (Closed)
Patch Set: add unit test and comments addressed 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 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);
}
« 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