| 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..36a72f73ed9d818022dc47899f31ac6c5f2d192b 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::SUCCEEDED);
|
| 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::SUCCEEDED);
|
| ExitScreen();
|
| return;
|
| }
|
| @@ -342,4 +346,12 @@ 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),
|
| + static_cast<int>(SyncResult::COUNT));
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|