NaCl: Update revision in DEPS, r14065 -> r14087
[chromium-blink-merge.git] / google_apis / gaia / identity_provider.cc
blob86edfb8205ff5332315cd67b29f55b37379a23d1
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 "base/profiler/scoped_tracker.h"
6 #include "google_apis/gaia/identity_provider.h"
8 IdentityProvider::Observer::~Observer() {}
10 IdentityProvider::~IdentityProvider() {}
12 void IdentityProvider::AddActiveAccountRefreshTokenObserver(
13 OAuth2TokenService::Observer* observer) {
14 OAuth2TokenService* token_service = GetTokenService();
15 if (!token_service || token_service_observers_.HasObserver(observer))
16 return;
18 token_service_observers_.AddObserver(observer);
19 if (++token_service_observer_count_ == 1)
20 token_service->AddObserver(this);
23 void IdentityProvider::RemoveActiveAccountRefreshTokenObserver(
24 OAuth2TokenService::Observer* observer) {
25 OAuth2TokenService* token_service = GetTokenService();
26 if (!token_service || !token_service_observers_.HasObserver(observer))
27 return;
29 token_service_observers_.RemoveObserver(observer);
30 if (--token_service_observer_count_ == 0)
31 token_service->RemoveObserver(this);
34 void IdentityProvider::AddObserver(Observer* observer) {
35 observers_.AddObserver(observer);
38 void IdentityProvider::RemoveObserver(Observer* observer) {
39 observers_.RemoveObserver(observer);
42 void IdentityProvider::OnRefreshTokenAvailable(const std::string& account_id) {
43 // TODO(vadimt): Remove ScopedTracker below once crbug.com/422460 is fixed.
44 tracked_objects::ScopedTracker tracking_profile(
45 FROM_HERE_WITH_EXPLICIT_FUNCTION(
46 "422460 IdentityProvider::OnRefreshTokenAvailable"));
48 if (account_id != GetActiveAccountId())
49 return;
50 FOR_EACH_OBSERVER(OAuth2TokenService::Observer,
51 token_service_observers_,
52 OnRefreshTokenAvailable(account_id));
55 void IdentityProvider::OnRefreshTokenRevoked(const std::string& account_id) {
56 if (account_id != GetActiveAccountId())
57 return;
58 FOR_EACH_OBSERVER(OAuth2TokenService::Observer,
59 token_service_observers_,
60 OnRefreshTokenRevoked(account_id));
63 void IdentityProvider::OnRefreshTokensLoaded() {
64 FOR_EACH_OBSERVER(OAuth2TokenService::Observer,
65 token_service_observers_,
66 OnRefreshTokensLoaded());
69 IdentityProvider::IdentityProvider() : token_service_observer_count_(0) {}
71 void IdentityProvider::FireOnActiveAccountLogin() {
72 FOR_EACH_OBSERVER(Observer, observers_, OnActiveAccountLogin());
75 void IdentityProvider::FireOnActiveAccountLogout() {
76 FOR_EACH_OBSERVER(Observer, observers_, OnActiveAccountLogout());