summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorskuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-01 13:35:17 +0000
committerskuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-01 13:35:17 +0000
commit7c43e7fed19a47bf116f402d19468d359c20d3be (patch)
treec9d0817707c4289bc7bbd387f21c969fdf78fe23 /chrome/browser
parenta19c652e7e6671a6d0b41ce76ab14c38a4a540f1 (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc3
-rw-r--r--chrome/browser/ui/ash/multi_user_window_manager.cc9
-rw-r--r--chrome/browser/ui/ash/session_state_delegate_chromeos.cc5
-rw-r--r--chrome/browser/ui/browser_command_controller.cc3
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 =