OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_SIGNIN_CORE_BROWSER_ABOUT_SIGNIN_INTERNALS_H_ | 5 #ifndef COMPONENTS_SIGNIN_CORE_BROWSER_ABOUT_SIGNIN_INTERNALS_H_ |
6 #define COMPONENTS_SIGNIN_CORE_BROWSER_ABOUT_SIGNIN_INTERNALS_H_ | 6 #define COMPONENTS_SIGNIN_CORE_BROWSER_ABOUT_SIGNIN_INTERNALS_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
(...skipping 14 matching lines...) Expand all Loading... |
25 class PrefRegistrySyncable; | 25 class PrefRegistrySyncable; |
26 } | 26 } |
27 | 27 |
28 class AccountTrackerService; | 28 class AccountTrackerService; |
29 class GaiaAuthFetcher; | 29 class GaiaAuthFetcher; |
30 class ProfileOAuth2TokenService; | 30 class ProfileOAuth2TokenService; |
31 class SigninClient; | 31 class SigninClient; |
32 | 32 |
33 // Many values in SigninStatus are also associated with a timestamp. | 33 // Many values in SigninStatus are also associated with a timestamp. |
34 // This makes it easier to keep values and their associated times together. | 34 // This makes it easier to keep values and their associated times together. |
35 typedef std::pair<std::string, std::string> TimedSigninStatusValue; | 35 using TimedSigninStatusValue = std::pair<std::string, std::string>; |
36 | 36 |
37 // This class collects authentication, signin and token information | 37 // This class collects authentication, signin and token information |
38 // to propagate to about:signin-internals via SigninInternalsUI. | 38 // to propagate to about:signin-internals via SigninInternalsUI. |
39 class AboutSigninInternals | 39 class AboutSigninInternals |
40 : public KeyedService, | 40 : public KeyedService, |
41 public signin_internals_util::SigninDiagnosticsObserver, | 41 public signin_internals_util::SigninDiagnosticsObserver, |
42 public OAuth2TokenService::DiagnosticsObserver, | 42 public OAuth2TokenService::DiagnosticsObserver, |
43 public GaiaCookieManagerService::Observer, | 43 public GaiaCookieManagerService::Observer, |
44 SigninManagerBase::Observer, | 44 SigninManagerBase::Observer, |
45 SigninErrorController::Observer { | 45 SigninErrorController::Observer { |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 const GoogleServiceAuthError& error) override; | 103 const GoogleServiceAuthError& error) override; |
104 | 104 |
105 private: | 105 private: |
106 // Encapsulates diagnostic information about tokens for different services. | 106 // Encapsulates diagnostic information about tokens for different services. |
107 struct TokenInfo { | 107 struct TokenInfo { |
108 TokenInfo(const std::string& consumer_id, | 108 TokenInfo(const std::string& consumer_id, |
109 const OAuth2TokenService::ScopeSet& scopes); | 109 const OAuth2TokenService::ScopeSet& scopes); |
110 ~TokenInfo(); | 110 ~TokenInfo(); |
111 std::unique_ptr<base::DictionaryValue> ToValue() const; | 111 std::unique_ptr<base::DictionaryValue> ToValue() const; |
112 | 112 |
113 static bool LessThan(const TokenInfo* a, const TokenInfo* b); | 113 static bool LessThan(const std::unique_ptr<TokenInfo>& a, |
| 114 const std::unique_ptr<TokenInfo>& b); |
114 | 115 |
115 // Called when the token is invalidated. | 116 // Called when the token is invalidated. |
116 void Invalidate(); | 117 void Invalidate(); |
117 | 118 |
118 std::string consumer_id; // service that requested the token. | 119 std::string consumer_id; // service that requested the token. |
119 OAuth2TokenService::ScopeSet scopes; // Scoped that are requested. | 120 OAuth2TokenService::ScopeSet scopes; // Scoped that are requested. |
120 base::Time request_time; | 121 base::Time request_time; |
121 base::Time receive_time; | 122 base::Time receive_time; |
122 base::Time expiration_time; | 123 base::Time expiration_time; |
123 GoogleServiceAuthError error; | 124 GoogleServiceAuthError error; |
124 bool removed_; | 125 bool removed_; |
125 }; | 126 }; |
126 | 127 |
127 // Map account id to tokens associated to the account. | |
128 typedef std::map<std::string, std::vector<TokenInfo*> > TokenInfoMap; | |
129 | |
130 // Encapsulates both authentication and token related information. Used | 128 // Encapsulates both authentication and token related information. Used |
131 // by SigninInternals to maintain information that needs to be shown in | 129 // by SigninInternals to maintain information that needs to be shown in |
132 // the about:signin-internals page. | 130 // the about:signin-internals page. |
133 struct SigninStatus { | 131 struct SigninStatus { |
134 std::vector<TimedSigninStatusValue> timed_signin_fields; | 132 std::vector<TimedSigninStatusValue> timed_signin_fields; |
135 TokenInfoMap token_info_map; | 133 |
| 134 // Map account id to tokens associated to the account. |
| 135 std::map<std::string, std::vector<std::unique_ptr<TokenInfo>>> |
| 136 token_info_map; |
136 | 137 |
137 SigninStatus(); | 138 SigninStatus(); |
138 ~SigninStatus(); | 139 ~SigninStatus(); |
139 | 140 |
140 TokenInfo* FindToken(const std::string& account_id, | 141 TokenInfo* FindToken(const std::string& account_id, |
141 const std::string& consumer_id, | 142 const std::string& consumer_id, |
142 const OAuth2TokenService::ScopeSet& scopes); | 143 const OAuth2TokenService::ScopeSet& scopes); |
143 | 144 |
144 // Returns a dictionary with the following form: | 145 // Returns a dictionary with the following form: |
145 // { "signin_info" : | 146 // { "signin_info" : |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 // Encapsulates the actual signin and token related values. | 220 // Encapsulates the actual signin and token related values. |
220 // Most of the values are mirrored in the prefs for persistence. | 221 // Most of the values are mirrored in the prefs for persistence. |
221 SigninStatus signin_status_; | 222 SigninStatus signin_status_; |
222 | 223 |
223 base::ObserverList<Observer> signin_observers_; | 224 base::ObserverList<Observer> signin_observers_; |
224 | 225 |
225 DISALLOW_COPY_AND_ASSIGN(AboutSigninInternals); | 226 DISALLOW_COPY_AND_ASSIGN(AboutSigninInternals); |
226 }; | 227 }; |
227 | 228 |
228 #endif // COMPONENTS_SIGNIN_CORE_BROWSER_ABOUT_SIGNIN_INTERNALS_H_ | 229 #endif // COMPONENTS_SIGNIN_CORE_BROWSER_ABOUT_SIGNIN_INTERNALS_H_ |
OLD | NEW |