• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #include "google_apis/gaia/identity_provider.h"
6 
~Observer()7 IdentityProvider::Observer::~Observer() {}
8 
~IdentityProvider()9 IdentityProvider::~IdentityProvider() {}
10 
AddActiveAccountRefreshTokenObserver(OAuth2TokenService::Observer * observer)11 void IdentityProvider::AddActiveAccountRefreshTokenObserver(
12     OAuth2TokenService::Observer* observer) {
13   OAuth2TokenService* token_service = GetTokenService();
14   if (!token_service || token_service_observers_.HasObserver(observer))
15     return;
16 
17   token_service_observers_.AddObserver(observer);
18   if (++token_service_observer_count_ == 1)
19     token_service->AddObserver(this);
20 }
21 
RemoveActiveAccountRefreshTokenObserver(OAuth2TokenService::Observer * observer)22 void IdentityProvider::RemoveActiveAccountRefreshTokenObserver(
23     OAuth2TokenService::Observer* observer) {
24   OAuth2TokenService* token_service = GetTokenService();
25   if (!token_service || !token_service_observers_.HasObserver(observer))
26     return;
27 
28   token_service_observers_.RemoveObserver(observer);
29   if (--token_service_observer_count_ == 0)
30     token_service->RemoveObserver(this);
31 }
32 
AddObserver(Observer * observer)33 void IdentityProvider::AddObserver(Observer* observer) {
34   observers_.AddObserver(observer);
35 }
36 
RemoveObserver(Observer * observer)37 void IdentityProvider::RemoveObserver(Observer* observer) {
38   observers_.RemoveObserver(observer);
39 }
40 
OnRefreshTokenAvailable(const std::string & account_id)41 void IdentityProvider::OnRefreshTokenAvailable(const std::string& account_id) {
42   if (account_id != GetActiveAccountId())
43     return;
44   FOR_EACH_OBSERVER(OAuth2TokenService::Observer,
45                     token_service_observers_,
46                     OnRefreshTokenAvailable(account_id));
47 }
48 
OnRefreshTokenRevoked(const std::string & account_id)49 void IdentityProvider::OnRefreshTokenRevoked(const std::string& account_id) {
50   if (account_id != GetActiveAccountId())
51     return;
52   FOR_EACH_OBSERVER(OAuth2TokenService::Observer,
53                     token_service_observers_,
54                     OnRefreshTokenRevoked(account_id));
55 }
56 
OnRefreshTokensLoaded()57 void IdentityProvider::OnRefreshTokensLoaded() {
58   FOR_EACH_OBSERVER(OAuth2TokenService::Observer,
59                     token_service_observers_,
60                     OnRefreshTokensLoaded());
61 }
62 
IdentityProvider()63 IdentityProvider::IdentityProvider() : token_service_observer_count_(0) {}
64 
FireOnActiveAccountLogin()65 void IdentityProvider::FireOnActiveAccountLogin() {
66   FOR_EACH_OBSERVER(Observer, observers_, OnActiveAccountLogin());
67 }
68 
FireOnActiveAccountLogout()69 void IdentityProvider::FireOnActiveAccountLogout() {
70   FOR_EACH_OBSERVER(Observer, observers_, OnActiveAccountLogout());
71 }
72