diff options
author | skuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-01 13:35:17 +0000 |
---|---|---|
committer | skuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-01 13:35:17 +0000 |
commit | 7c43e7fed19a47bf116f402d19468d359c20d3be (patch) | |
tree | c9d0817707c4289bc7bbd387f21c969fdf78fe23 /chrome/browser | |
parent | a19c652e7e6671a6d0b41ce76ab14c38a4a540f1 (diff) | |
download | chromium_src-7c43e7fed19a47bf116f402d19468d359c20d3be.zip chromium_src-7c43e7fed19a47bf116f402d19468d359c20d3be.tar.gz chromium_src-7c43e7fed19a47bf116f402d19468d359c20d3be.tar.bz2 |
Adding UMA statistics for multi profile
We are capturing:
- The used multi profile mode
- Window teleports (and their type of transfer)
BUG=311828
TEST=visual using chrome://histograms page
Review URL: https://codereview.chromium.org/52713008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232355 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
4 files changed, 20 insertions, 0 deletions
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc index 52b9114..5fd2fc1 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc @@ -81,6 +81,7 @@ #include "ui/views/corewm/window_animations.h" #if defined(OS_CHROMEOS) +#include "ash/multi_profile_uma.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/login/user_manager.h" #include "chrome/browser/chromeos/login/wallpaper_manager.h" @@ -1041,6 +1042,8 @@ void ChromeLauncherController::ActivateWindowOrMinimizeIfActive( const std::string& current_user = manager->GetUserIDFromProfile(profile()); if (!manager->IsWindowOnDesktopOfUser(native_window, current_user)) { + ash::MultiProfileUMA::RecordTeleportAction( + ash::MultiProfileUMA::TELEPORT_WINDOW_RETURN_BY_LAUNCHER); manager->ShowWindowForUser(native_window, current_user); window->Activate(); return; diff --git a/chrome/browser/ui/ash/multi_user_window_manager.cc b/chrome/browser/ui/ash/multi_user_window_manager.cc index 1d7ec5a..50995055 100644 --- a/chrome/browser/ui/ash/multi_user_window_manager.cc +++ b/chrome/browser/ui/ash/multi_user_window_manager.cc @@ -7,6 +7,7 @@ #include "apps/shell_window.h" #include "apps/shell_window_registry.h" #include "ash/ash_switches.h" +#include "ash/multi_profile_uma.h" #include "ash/session_state_delegate.h" #include "ash/shell.h" #include "ash/shell_delegate.h" @@ -95,17 +96,22 @@ MultiUserWindowManager* MultiUserWindowManager::GetInstance() { } MultiUserWindowManager* MultiUserWindowManager::CreateInstance() { + ash::MultiProfileUMA::SessionMode mode = + ash::MultiProfileUMA::SESSION_SINGLE_USER_MODE; if (!g_instance && ash::Shell::GetInstance()->delegate()->IsMultiProfilesEnabled() && !ash::switches::UseFullMultiProfileMode()) { g_instance = CreateInstanceInternal( ash::Shell::GetInstance()->session_state_delegate()->GetUserID(0)); multi_user_mode_ = MULTI_PROFILE_MODE_SEPARATED; + mode = ash::MultiProfileUMA::SESSION_SEPARATE_DESKTOP_MODE; } else if (ash::Shell::GetInstance()->delegate()->IsMultiProfilesEnabled()) { multi_user_mode_ = MULTI_PROFILE_MODE_MIXED; + mode = ash::MultiProfileUMA::SESSION_SIDE_BY_SIDE_MODE; } else { multi_user_mode_ = MULTI_PROFILE_MODE_OFF; } + ash::MultiProfileUMA::RecordSessionMode(mode); return g_instance; } @@ -199,6 +205,9 @@ void MultiUserWindowManager::ShowWindowForUser(aura::Window* window, if (user_id != owner && ash::wm::GetWindowState(window)->IsMinimized()) return; + ash::MultiProfileUMA::RecordTeleportAction( + ash::MultiProfileUMA::TELEPORT_WINDOW_RETURN_BY_MINIMIZE); + WindowToEntryMap::iterator it = window_to_entry_.find(window); it->second->set_show_for_user(user_id); diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc index b519eda..0cbfee3 100644 --- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc +++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc @@ -4,6 +4,7 @@ #include "chrome/browser/ui/ash/session_state_delegate_chromeos.h" +#include "ash/multi_profile_uma.h" #include "ash/session_state_observer.h" #include "base/command_line.h" #include "base/logging.h" @@ -174,6 +175,10 @@ bool SessionStateDelegateChromeos::TransferWindowToDesktopOfUser( chrome::MultiUserWindowManager::GetInstance(); if (!window_manager || window_manager->GetWindowOwner(window).empty()) return false; + + ash::MultiProfileUMA::RecordTeleportAction( + ash::MultiProfileUMA::TELEPORT_WINDOW_DRAG_AND_DROP); + DCHECK_LT(index, NumberOfLoggedInUsers()); window_manager->ShowWindowForUser(window, chromeos::UserManager::Get()->GetLRULoggedInUsers()[index]->email()); diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc index 50a870d..c6a5ed3 100644 --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc @@ -57,6 +57,7 @@ #endif #if defined(OS_CHROMEOS) +#include "ash/multi_profile_uma.h" #include "ash/session_state_delegate.h" #include "ash/shell.h" #include "chrome/browser/ui/ash/multi_user_window_manager.h" @@ -462,6 +463,8 @@ void BrowserCommandController::ExecuteCommandWithDisposition( #if defined(OS_CHROMEOS) case IDC_VISIT_DESKTOP_OF_LRU_USER_2: case IDC_VISIT_DESKTOP_OF_LRU_USER_3: { + ash::MultiProfileUMA::RecordTeleportAction( + ash::MultiProfileUMA::TELEPORT_WINDOW_CAPTION_MENU); // When running the multi user mode on Chrome OS, windows can "visit" // another user's desktop. const std::string& user_id = |