15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile_metrics.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/metrics/histogram.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browser_process.h" 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/profiles/profile.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile_info_cache.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile_manager.h" 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/signin/signin_header_helper.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/chrome_constants.h" 16a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "chrome/installer/util/google_update_settings.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/browser_thread.h" 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "content/public/browser/user_metrics.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 22a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)const int kMaximumReportedProfileCount = 5; 23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)const int kMaximumDaysOfDisuse = 4 * 7; // Should be integral number of weeks. 24a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 25a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)struct ProfileCounts { 26a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) size_t total; 27a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) size_t signedin; 28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) size_t supervised; 29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) size_t unused; 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) size_t gaia_icon; 31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ProfileCounts() 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) : total(0), signedin(0), supervised(0), unused(0), gaia_icon(0) {} 34a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}; 35a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ProfileMetrics::ProfileType GetProfileType( 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& profile_path) { 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProfileMetrics::ProfileType metric = ProfileMetrics::SECONDARY; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProfileManager* manager = g_browser_process->profile_manager(); 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::FilePath user_data_dir; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // In unittests, we do not always have a profile_manager so check. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (manager) { 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) user_data_dir = manager->user_data_dir(); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (profile_path == user_data_dir.AppendASCII(chrome::kInitialProfile)) { 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) metric = ProfileMetrics::ORIGINAL; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return metric; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)void UpdateReportedOSProfileStatistics(int active, int signedin) { 53a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#if defined(OS_WIN) 54a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) GoogleUpdateSettings::UpdateProfileCounts(active, signedin); 55a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#endif 56a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 57a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 58a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)bool CountProfileInformation(ProfileManager* manager, ProfileCounts* counts) { 59a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const ProfileInfoCache& info_cache = manager->GetProfileInfoCache(); 60a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) size_t number_of_profiles = info_cache.GetNumberOfProfiles(); 61a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) counts->total = number_of_profiles; 62a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 63a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // Ignore other metrics if we have no profiles, e.g. in Chrome Frame tests. 64a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (!number_of_profiles) 65a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return false; 66a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 67a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Maximum age for "active" profile is 4 weeks. 68a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) base::Time oldest = base::Time::Now() - 69a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) base::TimeDelta::FromDays(kMaximumDaysOfDisuse); 70a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 71a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) for (size_t i = 0; i < number_of_profiles; ++i) { 72a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (info_cache.GetProfileActiveTimeAtIndex(i) < oldest) { 73a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) counts->unused++; 74a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } else { 75f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) if (info_cache.ProfileIsSupervisedAtIndex(i)) 76f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) counts->supervised++; 7746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if (!info_cache.GetUserNameOfProfileAtIndex(i).empty()) { 78a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) counts->signedin++; 7946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if (info_cache.IsUsingGAIAPictureOfProfileAtIndex(i)) 8046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) counts->gaia_icon++; 8146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 82a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 83a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 84a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return true; 85a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 86a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 87f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void LogLockedProfileInformation(ProfileManager* manager) { 88f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const ProfileInfoCache& info_cache = manager->GetProfileInfoCache(); 89f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) size_t number_of_profiles = info_cache.GetNumberOfProfiles(); 90f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 91f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) base::Time now = base::Time::Now(); 92f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const int kMinutesInProfileValidDuration = 93f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) base::TimeDelta::FromDays(28).InMinutes(); 94f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (size_t i = 0; i < number_of_profiles; ++i) { 95f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // Find when locked profiles were locked 96f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) if (info_cache.ProfileIsSigninRequiredAtIndex(i)) { 97f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) base::TimeDelta time_since_lock = now - 98f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) info_cache.GetProfileActiveTimeAtIndex(i); 99f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // Specifying 100 buckets for the histogram to get a higher level of 100f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // granularity in the reported data, given the large number of possible 101f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // values (kMinutesInProfileValidDuration > 40,000). 102f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) UMA_HISTOGRAM_CUSTOM_COUNTS("Profile.LockedProfilesDuration", 103f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) time_since_lock.InMinutes(), 104f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1, 105f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) kMinutesInProfileValidDuration, 106f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 100); 107f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 108f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 109f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 110f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum ProfileAvatar { 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_GENERIC = 0, // The names for avatar icons 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_GENERIC_AQUA, 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_GENERIC_BLUE, 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_GENERIC_GREEN, 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_GENERIC_ORANGE, 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_GENERIC_PURPLE, 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_GENERIC_RED, 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_GENERIC_YELLOW, 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_SECRET_AGENT, 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_SUPERHERO, 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_VOLLEYBALL, // 10 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_BUSINESSMAN, 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_NINJA, 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_ALIEN, 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_AWESOME, 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_FLOWER, 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_PIZZA, 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_SOCCER, 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_BURGER, 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_CAT, 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_CUPCAKE, // 20 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_DOG, 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_HORSE, 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_MARGARITA, 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_NOTE, 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AVATAR_SUN_CLOUD, 1400529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch AVATAR_PLACEHOLDER, 1410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch AVATAR_UNKNOWN, // 27 1420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch AVATAR_GAIA, // 28 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_AVATAR_METRICS 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 146a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)void ProfileMetrics::UpdateReportedProfilesStatistics(ProfileManager* manager) { 147a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) ProfileCounts counts; 148a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (CountProfileInformation(manager, &counts)) { 149a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int limited_total = counts.total; 150a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int limited_signedin = counts.signedin; 151a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (limited_total > kMaximumReportedProfileCount) { 152a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) limited_total = kMaximumReportedProfileCount + 1; 153a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) limited_signedin = 154a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) (int)((float)(counts.signedin * limited_total) 155a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) / counts.total + 0.5); 156a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 157a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) UpdateReportedOSProfileStatistics(limited_total, limited_signedin); 158a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 159a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 160a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void ProfileMetrics::LogNumberOfProfiles(ProfileManager* manager) { 162a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) ProfileCounts counts; 163a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) bool success = CountProfileInformation(manager, &counts); 164a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) UMA_HISTOGRAM_COUNTS_100("Profile.NumberOfProfiles", counts.total); 1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 166c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Ignore other metrics if we have no profiles, e.g. in Chrome Frame tests. 167a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (success) { 168c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) UMA_HISTOGRAM_COUNTS_100("Profile.NumberOfManagedProfiles", 169f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) counts.supervised); 170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) UMA_HISTOGRAM_COUNTS_100("Profile.PercentageOfManagedProfiles", 171f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 100 * counts.supervised / counts.total); 172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) UMA_HISTOGRAM_COUNTS_100("Profile.NumberOfSignedInProfiles", 173a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) counts.signedin); 174a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) UMA_HISTOGRAM_COUNTS_100("Profile.NumberOfUnusedProfiles", 175a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) counts.unused); 17646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UMA_HISTOGRAM_COUNTS_100("Profile.NumberOfSignedInProfilesWithGAIAIcons", 17746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) counts.gaia_icon); 178a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 179f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) LogLockedProfileInformation(manager); 180a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) UpdateReportedOSProfileStatistics(counts.total, counts.signedin); 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ProfileMetrics::LogProfileAddNewUser(ProfileAdd metric) { 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DCHECK(metric < NUM_PROFILE_ADD_METRICS); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.AddNewUser", metric, 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_ADD_METRICS); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.NetUserCount", ADD_NEW_USER, 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_NET_METRICS); 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ProfileMetrics::LogProfileAvatarSelection(size_t icon_index) { 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DCHECK(icon_index < NUM_PROFILE_AVATAR_METRICS); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProfileAvatar icon_name = AVATAR_UNKNOWN; 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) switch (icon_index) { 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 0: 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_GENERIC; 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 1: 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_GENERIC_AQUA; 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 2: 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_GENERIC_BLUE; 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 3: 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_GENERIC_GREEN; 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 4: 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_GENERIC_ORANGE; 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 5: 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_GENERIC_PURPLE; 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 6: 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_GENERIC_RED; 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 7: 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_GENERIC_YELLOW; 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 8: 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_SECRET_AGENT; 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 9: 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_SUPERHERO; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 10: 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_VOLLEYBALL; 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 11: 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_BUSINESSMAN; 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 12: 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_NINJA; 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 13: 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_ALIEN; 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 14: 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_AWESOME; 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 15: 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_FLOWER; 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 16: 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_PIZZA; 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 17: 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_SOCCER; 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 18: 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_BURGER; 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 19: 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_CAT; 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 20: 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_CUPCAKE; 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 21: 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_DOG; 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 22: 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_HORSE; 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 23: 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_MARGARITA; 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 24: 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_NOTE; 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 25: 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_SUN_CLOUD; 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2740529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch case 26: 2750529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch icon_name = AVATAR_PLACEHOLDER; 2760529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch break; 2770529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch case 28: 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_name = AVATAR_GAIA; 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) default: // We should never actually get here. 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NOTREACHED(); 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.Avatar", icon_name, 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_AVATAR_METRICS); 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ProfileMetrics::LogProfileDeleteUser(ProfileNetUserCounts metric) { 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DCHECK(metric < NUM_PROFILE_NET_METRICS); 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.NetUserCount", metric, 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_NET_METRICS); 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ProfileMetrics::LogProfileOpenMethod(ProfileOpen metric) { 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DCHECK(metric < NUM_PROFILE_OPEN_METRICS); 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.OpenMethod", metric, 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_OPEN_METRICS); 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ProfileMetrics::LogProfileSwitchGaia(ProfileGaia metric) { 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (metric == GAIA_OPT_IN) 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LogProfileAvatarSelection(AVATAR_GAIA); 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.SwitchGaiaPhotoSettings", 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) metric, 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_GAIA_METRICS); 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ProfileMetrics::LogProfileSwitchUser(ProfileOpen metric) { 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DCHECK(metric < NUM_PROFILE_OPEN_METRICS); 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.OpenMethod", metric, 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_OPEN_METRICS); 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ProfileMetrics::LogProfileSyncInfo(ProfileSync metric) { 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DCHECK(metric < NUM_PROFILE_SYNC_METRICS); 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.SyncCustomize", metric, 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_SYNC_METRICS); 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void ProfileMetrics::LogProfileAuthResult(ProfileAuth metric) { 3215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.AuthResult", metric, 3225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) NUM_PROFILE_AUTH_METRICS); 3235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 3245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 325010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void ProfileMetrics::LogProfileUpgradeEnrollment( 326010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ProfileUpgradeEnrollment metric) { 327010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.UpgradeEnrollment", metric, 328010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) NUM_PROFILE_ENROLLMENT_METRICS); 329010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 330010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 331cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void ProfileMetrics::LogProfileDesktopMenu( 332cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ProfileDesktopMenu metric, 333cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) signin::GAIAServiceType gaia_service) { 334cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // The first parameter to the histogram needs to be literal, because of the 335cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // optimized implementation of |UMA_HISTOGRAM_ENUMERATION|. Do not attempt 336cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // to refactor. 337cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) switch (gaia_service) { 338cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) case signin::GAIA_SERVICE_TYPE_NONE: 339cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.DesktopMenu.NonGAIA", metric, 340cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NUM_PROFILE_DESKTOP_MENU_METRICS); 341cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) break; 342cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) case signin::GAIA_SERVICE_TYPE_SIGNOUT: 343cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.DesktopMenu.GAIASignout", metric, 344cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NUM_PROFILE_DESKTOP_MENU_METRICS); 345cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) break; 34646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) case signin::GAIA_SERVICE_TYPE_INCOGNITO: 34746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.DesktopMenu.GAIAIncognito", 348cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) metric, NUM_PROFILE_DESKTOP_MENU_METRICS); 349cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) break; 350cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) case signin::GAIA_SERVICE_TYPE_ADDSESSION: 351cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.DesktopMenu.GAIAAddSession", metric, 352cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NUM_PROFILE_DESKTOP_MENU_METRICS); 353cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) break; 354cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) case signin::GAIA_SERVICE_TYPE_REAUTH: 355cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.DesktopMenu.GAIAReAuth", metric, 356cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NUM_PROFILE_DESKTOP_MENU_METRICS); 357cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) break; 358cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) case signin::GAIA_SERVICE_TYPE_DEFAULT: 359cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.DesktopMenu.GAIADefault", metric, 360cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NUM_PROFILE_DESKTOP_MENU_METRICS); 361cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) break; 362cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 363cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 364cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 3656d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)void ProfileMetrics::LogProfileDelete(bool profile_was_signed_in) { 3666d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) UMA_HISTOGRAM_BOOLEAN("Profile.Delete", profile_was_signed_in); 3676d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 3686d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 36946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if defined(OS_ANDROID) 37046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void ProfileMetrics::LogProfileAndroidAccountManagementMenu( 37146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ProfileAndroidAccountManagementMenu metric, 37246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) signin::GAIAServiceType gaia_service) { 37346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // The first parameter to the histogram needs to be literal, because of the 37446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // optimized implementation of |UMA_HISTOGRAM_ENUMERATION|. Do not attempt 37546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // to refactor. 37646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) switch (gaia_service) { 37746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) case signin::GAIA_SERVICE_TYPE_NONE: 37846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UMA_HISTOGRAM_ENUMERATION( 37946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "Profile.AndroidAccountManagementMenu.NonGAIA", 38046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) metric, 38146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NUM_PROFILE_ANDROID_ACCOUNT_MANAGEMENT_MENU_METRICS); 38246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) break; 38346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) case signin::GAIA_SERVICE_TYPE_SIGNOUT: 38446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UMA_HISTOGRAM_ENUMERATION( 38546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "Profile.AndroidAccountManagementMenu.GAIASignout", 38646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) metric, 38746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NUM_PROFILE_ANDROID_ACCOUNT_MANAGEMENT_MENU_METRICS); 38846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) break; 38946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) case signin::GAIA_SERVICE_TYPE_INCOGNITO: 39046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UMA_HISTOGRAM_ENUMERATION( 39146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "Profile.AndroidAccountManagementMenu.GAIASignoutIncognito", 39246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) metric, 39346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NUM_PROFILE_ANDROID_ACCOUNT_MANAGEMENT_MENU_METRICS); 39446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) break; 39546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) case signin::GAIA_SERVICE_TYPE_ADDSESSION: 39646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UMA_HISTOGRAM_ENUMERATION( 39746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "Profile.AndroidAccountManagementMenu.GAIAAddSession", 39846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) metric, 39946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NUM_PROFILE_ANDROID_ACCOUNT_MANAGEMENT_MENU_METRICS); 40046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) break; 40146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) case signin::GAIA_SERVICE_TYPE_REAUTH: 40246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UMA_HISTOGRAM_ENUMERATION( 40346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "Profile.AndroidAccountManagementMenu.GAIAReAuth", 40446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) metric, 40546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NUM_PROFILE_ANDROID_ACCOUNT_MANAGEMENT_MENU_METRICS); 40646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) break; 40746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) case signin::GAIA_SERVICE_TYPE_DEFAULT: 40846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UMA_HISTOGRAM_ENUMERATION( 40946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "Profile.AndroidAccountManagementMenu.GAIADefault", 41046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) metric, 41146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NUM_PROFILE_ANDROID_ACCOUNT_MANAGEMENT_MENU_METRICS); 41246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) break; 41346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 41446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 41546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif // defined(OS_ANDROID) 41646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 417c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void ProfileMetrics::LogProfileLaunch(Profile* profile) { 418c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::FilePath profile_path = profile->GetPath(); 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.LaunchBrowser", 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetProfileType(profile_path), 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_TYPE_METRICS); 422c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 423f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) if (profile->IsSupervised()) { 424c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) content::RecordAction( 4255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::UserMetricsAction("ManagedMode_NewManagedUserWindow")); 426c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileMetrics::LogProfileSyncSignIn(const base::FilePath& profile_path) { 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.SyncSignIn", 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetProfileType(profile_path), 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_TYPE_METRICS); 4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileMetrics::LogProfileUpdate(const base::FilePath& profile_path) { 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UMA_HISTOGRAM_ENUMERATION("Profile.Update", 4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetProfileType(profile_path), 4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_PROFILE_TYPE_METRICS); 4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 440