Index: chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.cc |
diff --git a/chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.cc |
index acc32e7326ac9b5607fd08b4b95bf3c42e319a06..a423c76a5d809dd8f831bd13d8ae7e05e4e6806f 100644 |
--- a/chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.cc |
+++ b/chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.cc |
@@ -7,6 +7,7 @@ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/logging.h" |
+#include "base/metrics/histogram.h" |
#include "base/values.h" |
#include "chrome/browser/chromeos/login/camera_detector.h" |
#include "chrome/browser/chromeos/login/default_user_images.h" |
@@ -83,6 +84,7 @@ void UserImageScreenHandler::Show() { |
show_on_init_ = true; |
return; |
} |
+ screen_show_time_ = base::Time::Now(); |
ShowScreen(kUserImageScreen, NULL); |
// When shown, query camera presence again (first-time query is done by |
// OobeUI::OnLoginPromptVisible). |
@@ -144,6 +146,9 @@ void UserImageScreenHandler::RegisterMessages() { |
web_ui_->RegisterMessageCallback("onUserImageAccepted", |
base::Bind(&UserImageScreenHandler::HandleImageAccepted, |
base::Unretained(this))); |
+ web_ui_->RegisterMessageCallback("onUserImageScreenShown", |
+ base::Bind(&UserImageScreenHandler::HandleScreenShown, |
+ base::Unretained(this))); |
} |
void UserImageScreenHandler::OnPhotoAccepted(const SkBitmap& photo) { |
@@ -196,6 +201,22 @@ void UserImageScreenHandler::HandleImageAccepted(const base::ListValue* args) { |
} |
} |
+void UserImageScreenHandler::HandleScreenShown(const base::ListValue* args) { |
+ double loaded_time; |
zel
2011/10/20 21:57:44
this should be base::Time::Now() instead of param
|
+ if (!args || |
+ args->GetSize() != 1 || |
+ !args->GetDouble(0, &loaded_time)) { |
+ NOTREACHED(); |
+ return; |
+ } |
+ |
+ DCHECK(!screen_show_time_.is_null()); |
+ base::TimeDelta delta = |
+ base::Time::FromDoubleT(loaded_time) - screen_show_time_; |
+ VLOG(1) << "Screen load time: " << delta.InSecondsF(); |
+ UMA_HISTOGRAM_TIMES("UserImage.ScreenIsShownTime", delta); |
+} |
+ |
void UserImageScreenHandler::OnCameraPresenceCheckDone() { |
base::FundamentalValue present_value( |
CameraDetector::camera_presence() == CameraDetector::kCameraPresent); |