Index: chrome/browser/chromeos/login/screens/user_image_screen.cc |
diff --git a/chrome/browser/chromeos/login/screens/user_image_screen.cc b/chrome/browser/chromeos/login/screens/user_image_screen.cc |
index f450f9e1afeaec0f1a4d1f195315b08fa22bffdc..e54288129d97e10afbe87aaeb7e00fb9be0e47dc 100644 |
--- a/chrome/browser/chromeos/login/screens/user_image_screen.cc |
+++ b/chrome/browser/chromeos/login/screens/user_image_screen.cc |
@@ -125,6 +125,7 @@ void UserImageScreen::OnDecodeImageFailed() { |
void UserImageScreen::OnInitialSync(bool local_image_updated) { |
DCHECK(sync_timer_); |
+ ReportSyncResult(SyncResult::SUCCEED); |
if (!local_image_updated) { |
sync_timer_.reset(); |
GetSyncObserver()->RemoveObserver(this); |
@@ -136,6 +137,7 @@ void UserImageScreen::OnInitialSync(bool local_image_updated) { |
} |
void UserImageScreen::OnSyncTimeout() { |
+ ReportSyncResult(SyncResult::TIMED_OUT); |
sync_timer_.reset(); |
GetSyncObserver()->RemoveObserver(this); |
if (is_screen_ready_) |
@@ -261,8 +263,10 @@ void UserImageScreen::Show() { |
if (GetUser()->CanSyncImage()) { |
if (UserImageSyncObserver* sync_observer = GetSyncObserver()) { |
+ sync_waiting_start_time_ = base::Time::Now(); |
// We have synced image already. |
if (sync_observer->is_synced()) { |
+ ReportSyncResult(SyncResult::SUCCEED); |
ExitScreen(); |
return; |
} |
@@ -342,4 +346,11 @@ void UserImageScreen::ExitScreen() { |
Finish(BaseScreenDelegate::USER_IMAGE_SELECTED); |
} |
+void UserImageScreen::ReportSyncResult(SyncResult timed_out) const { |
+ base::TimeDelta duration = base::Time::Now() - sync_waiting_start_time_; |
+ UMA_HISTOGRAM_TIMES("Login.NewUserPriorityPrefsSyncTime", duration); |
+ UMA_HISTOGRAM_ENUMERATION("Login.NewUserPriorityPrefsSyncResult", |
+ static_cast<int>(timed_out), 2); |
Ilya Sherman
2015/05/15 17:36:40
nit: Maybe write this as below? I'm not too happy
dzhioev (left Google)
2015/05/15 20:36:50
I've added |COUNT| element to the enum, and use it
|
+} |
+ |
} // namespace chromeos |