// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/ui/ash/chrome_shell_content_state.h" #include "ash/session/session_state_delegate.h" #include "ash/shell.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" #include "components/signin/core/account_id/account_id.h" #include "components/user_manager/user_manager.h" #include "content/public/browser/browser_context.h" content::BrowserContext* ChromeShellContentState::GetBrowserContextByIndex( ash::UserIndex index) { ash::SessionStateDelegate* session_state_delegate = ash::Shell::GetInstance()->session_state_delegate(); DCHECK_LT(index, session_state_delegate->NumberOfLoggedInUsers()); user_manager::User* user = user_manager::UserManager::Get()->GetLRULoggedInUsers()[index]; CHECK(user); return chromeos::ProfileHelper::Get()->GetProfileByUser(user); } content::BrowserContext* ChromeShellContentState::GetBrowserContextForWindow( aura::Window* window) { const AccountId& account_id = chrome::MultiUserWindowManager::GetInstance()->GetWindowOwner(window); return account_id.is_valid() ? multi_user_util::GetProfileFromAccountId(account_id) : nullptr; } content::BrowserContext* ChromeShellContentState::GetUserPresentingBrowserContextForWindow( aura::Window* window) { const AccountId& account_id = chrome::MultiUserWindowManager::GetInstance()->GetUserPresentingWindow( window); return account_id.is_valid() ? multi_user_util::GetProfileFromAccountId(account_id) : nullptr; }