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

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.cc

Issue 8360003: [cros] OOBE: add histograms for Profile image fetching. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Renamed HandleScreenShown. Created 9 years, 2 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/metrics/histogram.h"
10 #include "base/values.h" 11 #include "base/values.h"
11 #include "chrome/browser/chromeos/login/camera_detector.h" 12 #include "chrome/browser/chromeos/login/camera_detector.h"
12 #include "chrome/browser/chromeos/login/default_user_images.h" 13 #include "chrome/browser/chromeos/login/default_user_images.h"
13 #include "chrome/browser/chromeos/login/user_manager.h" 14 #include "chrome/browser/chromeos/login/user_manager.h"
14 #include "chrome/browser/chromeos/login/webui_login_display.h" 15 #include "chrome/browser/chromeos/login/webui_login_display.h"
15 #include "chrome/browser/chromeos/options/take_photo_dialog.h" 16 #include "chrome/browser/chromeos/options/take_photo_dialog.h"
16 #include "chrome/browser/ui/views/window.h" 17 #include "chrome/browser/ui/views/window.h"
17 #include "chrome/browser/ui/webui/web_ui_util.h" 18 #include "chrome/browser/ui/webui/web_ui_util.h"
18 #include "chrome/common/url_constants.h" 19 #include "chrome/common/url_constants.h"
19 #include "grit/generated_resources.h" 20 #include "grit/generated_resources.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 void UserImageScreenHandler::SetDelegate( 77 void UserImageScreenHandler::SetDelegate(
77 UserImageScreenActor::Delegate* screen) { 78 UserImageScreenActor::Delegate* screen) {
78 screen_ = screen; 79 screen_ = screen;
79 } 80 }
80 81
81 void UserImageScreenHandler::Show() { 82 void UserImageScreenHandler::Show() {
82 if (!page_is_ready()) { 83 if (!page_is_ready()) {
83 show_on_init_ = true; 84 show_on_init_ = true;
84 return; 85 return;
85 } 86 }
87 screen_show_time_ = base::Time::Now();
86 ShowScreen(kUserImageScreen, NULL); 88 ShowScreen(kUserImageScreen, NULL);
87 // When shown, query camera presence again (first-time query is done by 89 // When shown, query camera presence again (first-time query is done by
88 // OobeUI::OnLoginPromptVisible). 90 // OobeUI::OnLoginPromptVisible).
89 CheckCameraPresence(); 91 CheckCameraPresence();
90 } 92 }
91 93
92 void UserImageScreenHandler::Hide() { 94 void UserImageScreenHandler::Hide() {
93 } 95 }
94 96
95 void UserImageScreenHandler::PrepareToShow() { 97 void UserImageScreenHandler::PrepareToShow() {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 void UserImageScreenHandler::RegisterMessages() { 139 void UserImageScreenHandler::RegisterMessages() {
138 web_ui_->RegisterMessageCallback("takePhoto", 140 web_ui_->RegisterMessageCallback("takePhoto",
139 base::Bind(&UserImageScreenHandler::HandleTakePhoto, 141 base::Bind(&UserImageScreenHandler::HandleTakePhoto,
140 base::Unretained(this))); 142 base::Unretained(this)));
141 web_ui_->RegisterMessageCallback("selectImage", 143 web_ui_->RegisterMessageCallback("selectImage",
142 base::Bind(&UserImageScreenHandler::HandleSelectImage, 144 base::Bind(&UserImageScreenHandler::HandleSelectImage,
143 base::Unretained(this))); 145 base::Unretained(this)));
144 web_ui_->RegisterMessageCallback("onUserImageAccepted", 146 web_ui_->RegisterMessageCallback("onUserImageAccepted",
145 base::Bind(&UserImageScreenHandler::HandleImageAccepted, 147 base::Bind(&UserImageScreenHandler::HandleImageAccepted,
146 base::Unretained(this))); 148 base::Unretained(this)));
149 web_ui_->RegisterMessageCallback("onUserImageScreenShown",
150 base::Bind(&UserImageScreenHandler::HandleScreenShown,
151 base::Unretained(this)));
147 } 152 }
148 153
149 void UserImageScreenHandler::OnPhotoAccepted(const SkBitmap& photo) { 154 void UserImageScreenHandler::OnPhotoAccepted(const SkBitmap& photo) {
150 user_photo_ = photo; 155 user_photo_ = photo;
151 selected_image_ = UserManager::User::kExternalImageIndex; 156 selected_image_ = UserManager::User::kExternalImageIndex;
152 base::StringValue data_url(web_ui_util::GetImageDataUrl(user_photo_)); 157 base::StringValue data_url(web_ui_util::GetImageDataUrl(user_photo_));
153 web_ui_->CallJavascriptFunction("oobe.UserImageScreen.setUserPhoto", 158 web_ui_->CallJavascriptFunction("oobe.UserImageScreen.setUserPhoto",
154 data_url); 159 data_url);
155 } 160 }
156 161
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 if (selected_image_ == UserManager::User::kExternalImageIndex) { 194 if (selected_image_ == UserManager::User::kExternalImageIndex) {
190 screen_->OnPhotoTaken(user_photo_); 195 screen_->OnPhotoTaken(user_photo_);
191 } else if (selected_image_ == UserManager::User::kProfileImageIndex) { 196 } else if (selected_image_ == UserManager::User::kProfileImageIndex) {
192 screen_->OnProfileImageSelected(profile_picture_); 197 screen_->OnProfileImageSelected(profile_picture_);
193 } else { 198 } else {
194 DCHECK(selected_image_ >= 0); 199 DCHECK(selected_image_ >= 0);
195 screen_->OnDefaultImageSelected(selected_image_); 200 screen_->OnDefaultImageSelected(selected_image_);
196 } 201 }
197 } 202 }
198 203
204 void UserImageScreenHandler::HandleScreenShown(const base::ListValue* args) {
205 double loaded_time;
zel 2011/10/20 21:57:44 this should be base::Time::Now() instead of param
206 if (!args ||
207 args->GetSize() != 1 ||
208 !args->GetDouble(0, &loaded_time)) {
209 NOTREACHED();
210 return;
211 }
212
213 DCHECK(!screen_show_time_.is_null());
214 base::TimeDelta delta =
215 base::Time::FromDoubleT(loaded_time) - screen_show_time_;
216 VLOG(1) << "Screen load time: " << delta.InSecondsF();
217 UMA_HISTOGRAM_TIMES("UserImage.ScreenIsShownTime", delta);
218 }
219
199 void UserImageScreenHandler::OnCameraPresenceCheckDone() { 220 void UserImageScreenHandler::OnCameraPresenceCheckDone() {
200 base::FundamentalValue present_value( 221 base::FundamentalValue present_value(
201 CameraDetector::camera_presence() == CameraDetector::kCameraPresent); 222 CameraDetector::camera_presence() == CameraDetector::kCameraPresent);
202 web_ui_->CallJavascriptFunction("oobe.UserImageScreen.setCameraPresent", 223 web_ui_->CallJavascriptFunction("oobe.UserImageScreen.setCameraPresent",
203 present_value); 224 present_value);
204 } 225 }
205 226
206 } // namespace chromeos 227 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698