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

Side by Side Diff: chrome/browser/ui/ash/multi_user_window_manager.cc

Issue 52713008: Adding UMA statistics for multi profile (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/ash/multi_user_window_manager.h" 5 #include "chrome/browser/ui/ash/multi_user_window_manager.h"
6 6
7 #include "apps/shell_window.h" 7 #include "apps/shell_window.h"
8 #include "apps/shell_window_registry.h" 8 #include "apps/shell_window_registry.h"
9 #include "ash/ash_switches.h" 9 #include "ash/ash_switches.h"
10 #include "ash/multi_profile_uma.h"
10 #include "ash/session_state_delegate.h" 11 #include "ash/session_state_delegate.h"
11 #include "ash/shell.h" 12 #include "ash/shell.h"
12 #include "ash/shell_delegate.h" 13 #include "ash/shell_delegate.h"
13 #include "ash/wm/mru_window_tracker.h" 14 #include "ash/wm/mru_window_tracker.h"
14 #include "ash/wm/window_positioner.h" 15 #include "ash/wm/window_positioner.h"
15 #include "ash/wm/window_state.h" 16 #include "ash/wm/window_state.h"
16 #include "base/auto_reset.h" 17 #include "base/auto_reset.h"
17 #include "base/strings/string_util.h" 18 #include "base/strings/string_util.h"
18 #include "chrome/browser/browser_process.h" 19 #include "chrome/browser/browser_process.h"
19 #include "chrome/browser/chrome_notification_types.h" 20 #include "chrome/browser/chrome_notification_types.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 89
89 DISALLOW_COPY_AND_ASSIGN(AppObserver); 90 DISALLOW_COPY_AND_ASSIGN(AppObserver);
90 }; 91 };
91 92
92 // static 93 // static
93 MultiUserWindowManager* MultiUserWindowManager::GetInstance() { 94 MultiUserWindowManager* MultiUserWindowManager::GetInstance() {
94 return g_instance; 95 return g_instance;
95 } 96 }
96 97
97 MultiUserWindowManager* MultiUserWindowManager::CreateInstance() { 98 MultiUserWindowManager* MultiUserWindowManager::CreateInstance() {
99 ash::MultiProfileUMA::SessionMode mode =
100 ash::MultiProfileUMA::SESSION_SINGLE_USER_MODE;
98 if (!g_instance && 101 if (!g_instance &&
99 ash::Shell::GetInstance()->delegate()->IsMultiProfilesEnabled() && 102 ash::Shell::GetInstance()->delegate()->IsMultiProfilesEnabled() &&
100 !ash::switches::UseFullMultiProfileMode()) { 103 !ash::switches::UseFullMultiProfileMode()) {
101 g_instance = CreateInstanceInternal( 104 g_instance = CreateInstanceInternal(
102 ash::Shell::GetInstance()->session_state_delegate()->GetUserID(0)); 105 ash::Shell::GetInstance()->session_state_delegate()->GetUserID(0));
103 multi_user_mode_ = MULTI_PROFILE_MODE_SEPARATED; 106 multi_user_mode_ = MULTI_PROFILE_MODE_SEPARATED;
107 mode = ash::MultiProfileUMA::SESSION_SEPARATE_DESKTOP_MODE;
104 } else if (ash::Shell::GetInstance()->delegate()->IsMultiProfilesEnabled()) { 108 } else if (ash::Shell::GetInstance()->delegate()->IsMultiProfilesEnabled()) {
105 multi_user_mode_ = MULTI_PROFILE_MODE_MIXED; 109 multi_user_mode_ = MULTI_PROFILE_MODE_MIXED;
110 mode = ash::MultiProfileUMA::SESSION_SIDE_BY_SIDE_MODE;
106 } else { 111 } else {
107 multi_user_mode_ = MULTI_PROFILE_MODE_OFF; 112 multi_user_mode_ = MULTI_PROFILE_MODE_OFF;
108 } 113 }
114 ash::MultiProfileUMA::RecordSessionMode(mode);
109 return g_instance; 115 return g_instance;
110 } 116 }
111 117
112 // static 118 // static
113 MultiUserWindowManager::MultiProfileMode 119 MultiUserWindowManager::MultiProfileMode
114 MultiUserWindowManager::GetMultiProfileMode() { 120 MultiUserWindowManager::GetMultiProfileMode() {
115 return multi_user_mode_; 121 return multi_user_mode_;
116 } 122 }
117 123
118 // static 124 // static
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 // is required. 198 // is required.
193 const std::string& owner = GetWindowOwner(window); 199 const std::string& owner = GetWindowOwner(window);
194 if (owner.empty() || 200 if (owner.empty() ||
195 (owner == user_id && IsWindowOnDesktopOfUser(window, user_id))) 201 (owner == user_id && IsWindowOnDesktopOfUser(window, user_id)))
196 return; 202 return;
197 203
198 // Check that we are not trying to transfer ownership of a minimized window. 204 // Check that we are not trying to transfer ownership of a minimized window.
199 if (user_id != owner && ash::wm::GetWindowState(window)->IsMinimized()) 205 if (user_id != owner && ash::wm::GetWindowState(window)->IsMinimized())
200 return; 206 return;
201 207
208 ash::MultiProfileUMA::RecordTeleportAction(
209 ash::MultiProfileUMA::TELEPORT_WINDOW_RETURN_BY_MINIMIZE);
210
202 WindowToEntryMap::iterator it = window_to_entry_.find(window); 211 WindowToEntryMap::iterator it = window_to_entry_.find(window);
203 it->second->set_show_for_user(user_id); 212 it->second->set_show_for_user(user_id);
204 213
205 // Show the window if the added user is the current one. 214 // Show the window if the added user is the current one.
206 if (user_id == current_user_id_) 215 if (user_id == current_user_id_)
207 SetWindowVisibility(window, true); 216 SetWindowVisibility(window, true);
208 else 217 else
209 SetWindowVisibility(window, false); 218 SetWindowVisibility(window, false);
210 } 219 }
211 220
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 // To prevent these commands from being recorded as any other commands, we 577 // To prevent these commands from being recorded as any other commands, we
569 // are suppressing any window entry changes while this is going on. 578 // are suppressing any window entry changes while this is going on.
570 // Instead of calling SetWindowVisible, only show gets called here since all 579 // Instead of calling SetWindowVisible, only show gets called here since all
571 // dependents have been shown previously already. 580 // dependents have been shown previously already.
572 base::AutoReset<bool> suppressor(&suppress_visibility_changes_, true); 581 base::AutoReset<bool> suppressor(&suppress_visibility_changes_, true);
573 window->Show(); 582 window->Show();
574 } 583 }
575 } 584 }
576 585
577 } // namespace chrome 586 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698