Commit 038a7018 authored by rlp@chromium.org's avatar rlp@chromium.org

Adding in metrics for GAIA photo info. Also, fixing avatar logging to only log...

Adding in metrics for GAIA photo info. Also, fixing avatar logging to only log when the user changes their photo. Currently it logs any time name OR avatar are updated. Now it should only do it for actual avatar changes.

BUG=93825,106134
TEST=none

Review URL: http://codereview.chromium.org/8790010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113128 0039d316-1c4b-4281-b951-d872f2087c98
parent a3ccf6cd
......@@ -31,9 +31,41 @@ ProfileMetrics::ProfileType GetProfileType(
} // namespace
enum ProfileAvatar {
AVATAR_GENERIC = 0, // The names for avatar icons
AVATAR_GENERIC_AQUA,
AVATAR_GENERIC_BLUE,
AVATAR_GENERIC_GREEN,
AVATAR_GENERIC_ORANGE,
AVATAR_GENERIC_PURPLE,
AVATAR_GENERIC_RED,
AVATAR_GENERIC_YELLOW,
AVATAR_SECRET_AGENT,
AVATAR_SUPERHERO,
AVATAR_VOLLEYBALL, // 10
AVATAR_BUSINESSMAN,
AVATAR_NINJA,
AVATAR_ALIEN,
AVATAR_AWESOME,
AVATAR_FLOWER,
AVATAR_PIZZA,
AVATAR_SOCCER,
AVATAR_BURGER,
AVATAR_CAT,
AVATAR_CUPCAKE, // 20
AVATAR_DOG,
AVATAR_HORSE,
AVATAR_MARGARITA,
AVATAR_NOTE,
AVATAR_SUN_CLOUD,
AVATAR_UNKNOWN, // 26
AVATAR_GAIA, // 27
NUM_PROFILE_AVATAR_METRICS
};
void ProfileMetrics::LogProfileAvatarSelection(size_t icon_index) {
DCHECK(icon_index < NUM_PROFILE_AVATAR_METRICS);
ProfileAvatar icon_name;
ProfileAvatar icon_name = AVATAR_UNKNOWN;
switch (icon_index) {
case 0:
icon_name = AVATAR_GENERIC;
......@@ -113,8 +145,11 @@ void ProfileMetrics::LogProfileAvatarSelection(size_t icon_index) {
case 25:
icon_name = AVATAR_SUN_CLOUD;
break;
default: // We should never actually get here, but just in case
icon_name = AVATAR_UNKNOWN;
case 27:
icon_name = AVATAR_GAIA;
break;
default: // We should never actually get here.
NOTREACHED();
break;
}
UMA_HISTOGRAM_ENUMERATION("Profile.Avatar", icon_name,
......@@ -164,3 +199,11 @@ void ProfileMetrics::LogProfileSyncSignIn(FilePath& profile_path) {
GetProfileType(profile_path),
NUM_PROFILE_TYPE_METRICS);
}
void ProfileMetrics::LogProfileSwitchGaia(ProfileGaia metric) {
if (metric == GAIA_OPT_IN)
LogProfileAvatarSelection(AVATAR_GAIA);
UMA_HISTOGRAM_ENUMERATION("Profile.SwitchGaiaPhotoSettings",
metric,
NUM_PROFILE_GAIA_METRICS);
}
......@@ -14,37 +14,6 @@ class FilePath;
class ProfileMetrics {
public:
enum ProfileAvatar {
AVATAR_GENERIC = 0, // The names for avatar icons
AVATAR_GENERIC_AQUA,
AVATAR_GENERIC_BLUE,
AVATAR_GENERIC_GREEN,
AVATAR_GENERIC_ORANGE,
AVATAR_GENERIC_PURPLE,
AVATAR_GENERIC_RED,
AVATAR_GENERIC_YELLOW,
AVATAR_SECRET_AGENT,
AVATAR_SUPERHERO,
AVATAR_VOLLEYBALL,
AVATAR_BUSINESSMAN,
AVATAR_NINJA,
AVATAR_ALIEN,
AVATAR_AWESOME,
AVATAR_FLOWER,
AVATAR_PIZZA,
AVATAR_SOCCER,
AVATAR_BURGER,
AVATAR_CAT,
AVATAR_CUPCAKE,
AVATAR_DOG,
AVATAR_HORSE,
AVATAR_MARGARITA,
AVATAR_NOTE,
AVATAR_SUN_CLOUD,
AVATAR_UNKNOWN,
NUM_PROFILE_AVATAR_METRICS
};
// Enum for counting the ways users were added.
enum ProfileAdd {
ADD_NEW_USER_ICON = 0, // User adds new user from icon menu
......@@ -86,6 +55,12 @@ class ProfileMetrics {
NUM_PROFILE_TYPE_METRICS
};
enum ProfileGaia {
GAIA_OPT_IN = 0, // User changed to GAIA photo as avatar
GAIA_OPT_OUT, // User changed to not use GAIA photo as avatar
NUM_PROFILE_GAIA_METRICS
};
static void LogProfileAvatarSelection(size_t icon_index);
static void LogProfileOpenMethod(ProfileOpen metric);
static void LogProfileAddNewUser(ProfileAdd metric);
......@@ -94,6 +69,7 @@ class ProfileMetrics {
static void LogProfileSyncInfo(ProfileSync metric);
static void LogProfileUpdate(FilePath& profile_path);
static void LogProfileSyncSignIn(FilePath& profile_path);
static void LogProfileSwitchGaia(ProfileGaia metric);
};
......
......@@ -174,9 +174,19 @@ void ManageProfileHandler::SetProfileNameAndIcon(const ListValue* args) {
if (!args->GetString(2, &icon_url))
return;
// Metrics logging variable.
bool previously_using_gaia_icon =
cache.IsUsingGAIANameOfProfileAtIndex(profile_index);
size_t new_icon_index;
if (icon_url == gaia_picture_url_) {
cache.SetIsUsingGAIAPictureOfProfileAtIndex(profile_index, true);
if (!previously_using_gaia_icon) {
// Only log if they changed to the GAIA photo.
// Selection of GAIA photo as avatar is logged as part of the function
// below.
ProfileMetrics::LogProfileSwitchGaia(ProfileMetrics::GAIA_OPT_IN);
}
} else if (cache.IsDefaultAvatarIconUrl(icon_url, &new_icon_index)) {
ProfileMetrics::LogProfileAvatarSelection(new_icon_index);
cache.SetAvatarIconOfProfileAtIndex(profile_index, new_icon_index);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment