Index: chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc |
diff --git a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc |
index 0535f8cbc5be840ba29a1206092fbc1840e2fa8e..c3175bae152ea9f63f170d86cea3539a82a1c6e2 100644 |
--- a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc |
+++ b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc |
@@ -30,6 +30,7 @@ |
#include "chrome/browser/ui/browser_finder.h" |
#include "chrome/browser/ui/browser_list.h" |
#include "chrome/browser/ui/browser_window.h" |
+#include "components/user_manager/user_id.h" |
#include "content/public/browser/notification_service.h" |
#include "extensions/browser/app_window/app_window.h" |
#include "extensions/browser/app_window/app_window_registry.h" |
@@ -191,7 +192,7 @@ class AnimationSetter { |
// window observer will take care of that. |
class AppObserver : public extensions::AppWindowRegistry::Observer { |
public: |
- explicit AppObserver(const std::string& user_id) : user_id_(user_id) {} |
+ explicit AppObserver(const user_manager::UserID& user_id) : user_id_(user_id) {} |
~AppObserver() override {} |
// AppWindowRegistry::Observer overrides: |
@@ -203,14 +204,15 @@ class AppObserver : public extensions::AppWindowRegistry::Observer { |
} |
private: |
- std::string user_id_; |
+ const user_manager::UserID user_id_; |
DISALLOW_COPY_AND_ASSIGN(AppObserver); |
}; |
MultiUserWindowManagerChromeOS::MultiUserWindowManagerChromeOS( |
- const std::string& current_user_id) |
+ const user_manager::UserID& current_user_id) |
: current_user_id_(current_user_id), |
+ null_user_id_(std::string(), std::string()), |
notification_blocker_(new MultiUserNotificationBlockerChromeOS( |
message_center::MessageCenter::Get(), current_user_id)), |
suppress_visibility_changes_(false), |
@@ -275,7 +277,7 @@ void MultiUserWindowManagerChromeOS::Init() { |
void MultiUserWindowManagerChromeOS::SetWindowOwner( |
aura::Window* window, |
- const std::string& user_id) { |
+ const user_manager::UserID& user_id) { |
// Make sure the window is valid and there was no owner yet. |
DCHECK(window); |
DCHECK(!user_id.empty()); |
@@ -307,17 +309,17 @@ void MultiUserWindowManagerChromeOS::SetWindowOwner( |
SetWindowVisibility(window, false, 0); |
} |
-const std::string& MultiUserWindowManagerChromeOS::GetWindowOwner( |
+const user_manager::UserID& MultiUserWindowManagerChromeOS::GetWindowOwner( |
aura::Window* window) const { |
WindowToEntryMap::const_iterator it = window_to_entry_.find(window); |
return it != window_to_entry_.end() ? it->second->owner() |
- : base::EmptyString(); |
+ : user_manager::EmptyUserID(); |
} |
void MultiUserWindowManagerChromeOS::ShowWindowForUser( |
aura::Window* window, |
- const std::string& user_id) { |
- std::string previous_owner(GetUserPresentingWindow(window)); |
+ const user_manager::UserID& user_id) { |
+ user_manager::UserID previous_owner(GetUserPresentingWindow(window)); |
if (!ShowWindowForUserIntern(window, user_id)) |
return; |
// The window switched to a new desktop and we have to switch to that desktop, |
@@ -340,7 +342,7 @@ bool MultiUserWindowManagerChromeOS::AreWindowsSharedAmongUsers() const { |
} |
void MultiUserWindowManagerChromeOS::GetOwnersOfVisibleWindows( |
- std::set<std::string>* user_ids) const { |
+ std::set<user_manager::UserID>* user_ids) const { |
for (WindowToEntryMap::const_iterator it = window_to_entry_.begin(); |
it != window_to_entry_.end(); |
++it) { |
@@ -351,25 +353,26 @@ void MultiUserWindowManagerChromeOS::GetOwnersOfVisibleWindows( |
bool MultiUserWindowManagerChromeOS::IsWindowOnDesktopOfUser( |
aura::Window* window, |
- const std::string& user_id) const { |
- const std::string& presenting_user = GetUserPresentingWindow(window); |
+ const user_manager::UserID& user_id) const { |
+ const user_manager::UserID& presenting_user = GetUserPresentingWindow(window); |
return presenting_user.empty() || presenting_user == user_id; |
} |
-const std::string& MultiUserWindowManagerChromeOS::GetUserPresentingWindow( |
+const user_manager::UserID& MultiUserWindowManagerChromeOS::GetUserPresentingWindow( |
aura::Window* window) const { |
WindowToEntryMap::const_iterator it = window_to_entry_.find(window); |
// If the window is not owned by anyone it is shown on all desktops and we |
// return the empty string. |
if (it == window_to_entry_.end()) |
- return base::EmptyString(); |
+ return user_manager::EmptyUserID(); |
+ |
// Otherwise we ask the object for its desktop. |
return it->second->show_for_user(); |
} |
void MultiUserWindowManagerChromeOS::AddUser(content::BrowserContext* context) { |
Profile* profile = Profile::FromBrowserContext(context); |
- const std::string& user_id = multi_user_util::GetUserIDFromProfile(profile); |
+ const user_manager::UserID& user_id = multi_user_util::GetUserIDFromProfile(profile); |
if (user_id_to_app_observer_.find(user_id) != user_id_to_app_observer_.end()) |
return; |
@@ -417,7 +420,7 @@ void MultiUserWindowManagerChromeOS::RemoveObserver(Observer* observer) { |
} |
void MultiUserWindowManagerChromeOS::ActiveUserChanged( |
- const std::string& user_id) { |
+ const user_manager::UserID& user_id) { |
// This needs to be set before the animation starts. |
current_user_id_ = user_id; |
@@ -534,17 +537,17 @@ bool MultiUserWindowManagerChromeOS::IsAnimationRunningForTest() { |
return animation_.get() != NULL && !animation_->IsAnimationFinished(); |
} |
-const std::string& MultiUserWindowManagerChromeOS::GetCurrentUserForTest() |
+const user_manager::UserID& MultiUserWindowManagerChromeOS::GetCurrentUserForTest() |
const { |
return current_user_id_; |
} |
bool MultiUserWindowManagerChromeOS::ShowWindowForUserIntern( |
aura::Window* window, |
- const std::string& user_id) { |
+ const user_manager::UserID& user_id) { |
// If there is either no owner, or the owner is the current user, no action |
// is required. |
- const std::string& owner = GetWindowOwner(window); |
+ const user_manager::UserID& owner = GetWindowOwner(window); |
if (owner.empty() || |
(owner == user_id && IsWindowOnDesktopOfUser(window, user_id))) |
return false; |
@@ -598,7 +601,7 @@ void MultiUserWindowManagerChromeOS::SetWindowVisibility( |
if (window->parent() == system_modal_container) { |
// The window is system modal and we need to find the parent which owns |
// it so that we can switch to the desktop accordingly. |
- std::string user_id = GetUserPresentingWindow(window); |
+ user_manager::UserID user_id = GetUserPresentingWindow(window); |
if (user_id.empty()) { |
aura::Window* owning_window = GetOwningWindowInTransientChain(window); |
DCHECK(owning_window); |