No longer register app window placement preference keys on
[chromium-blink-merge.git] / chrome / browser / ui / ash / user_accounts_delegate_chromeos.cc
blobf71dc0e2985e2a1cdb8c755691141393089d9fa4
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/ash/user_accounts_delegate_chromeos.h"
7 #include <algorithm>
8 #include <iterator>
10 #include "base/logging.h"
11 #include "chrome/browser/chromeos/profiles/profile_helper.h"
12 #include "chrome/browser/chromeos/ui/inline_login_dialog.h"
13 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
14 #include "chrome/browser/signin/signin_manager_factory.h"
15 #include "components/signin/core/browser/mutable_profile_oauth2_token_service.h"
16 #include "components/signin/core/browser/profile_oauth2_token_service.h"
17 #include "components/signin/core/browser/signin_manager.h"
18 #include "components/user_manager/user.h"
19 #include "google_apis/gaia/gaia_auth_util.h"
21 namespace chromeos {
23 UserAccountsDelegateChromeOS::UserAccountsDelegateChromeOS(
24 Profile* user_profile)
25 : user_profile_(user_profile) {
26 ProfileOAuth2TokenServiceFactory::GetForProfile(user_profile_)
27 ->AddObserver(this);
30 UserAccountsDelegateChromeOS::~UserAccountsDelegateChromeOS() {
31 ProfileOAuth2TokenServiceFactory::GetForProfile(user_profile_)
32 ->RemoveObserver(this);
35 std::string UserAccountsDelegateChromeOS::GetPrimaryAccountId() {
36 return SigninManagerFactory::GetForProfile(user_profile_)
37 ->GetAuthenticatedAccountId();
40 std::vector<std::string>
41 UserAccountsDelegateChromeOS::GetSecondaryAccountIds() {
42 ProfileOAuth2TokenService* token_service =
43 ProfileOAuth2TokenServiceFactory::GetForProfile(user_profile_);
44 std::vector<std::string> accounts = token_service->GetAccounts();
45 // Filter primary account.
46 std::vector<std::string>::iterator it =
47 std::remove(accounts.begin(), accounts.end(), GetPrimaryAccountId());
48 LOG_IF(WARNING, std::distance(it, accounts.end()) != 1)
49 << "Found " << std::distance(it, accounts.end())
50 << " primary accounts in the account list.";
51 accounts.erase(it, accounts.end());
52 return accounts;
55 std::string UserAccountsDelegateChromeOS::GetAccountDisplayName(
56 const std::string& account_id) {
57 user_manager::User* user =
58 ProfileHelper::Get()->GetUserByProfile(user_profile_);
59 if (gaia::AreEmailsSame(user->email(), account_id) &&
60 !user->display_email().empty())
61 return user->display_email();
62 return account_id;
65 void UserAccountsDelegateChromeOS::DeleteAccount(
66 const std::string& account_id) {
67 MutableProfileOAuth2TokenService* oauth2_token_service =
68 ProfileOAuth2TokenServiceFactory::GetPlatformSpecificForProfile(
69 user_profile_);
70 oauth2_token_service->RevokeCredentials(account_id);
73 void UserAccountsDelegateChromeOS::LaunchAddAccountDialog() {
74 ui::InlineLoginDialog::Show(user_profile_);
77 void UserAccountsDelegateChromeOS::OnRefreshTokenAvailable(
78 const std::string& account_id) {
79 NotifyAccountListChanged();
82 void UserAccountsDelegateChromeOS::OnRefreshTokenRevoked(
83 const std::string& account_id) {
84 NotifyAccountListChanged();
87 } // namespace chromeos