Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: chrome/browser/extensions/api/identity/identity_api.h

Issue 666153002: Standardize usage of virtual/override/final in chrome/browser/extensions/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_API_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_API_H_ 6 #define CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_API_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 public gaia::AccountTracker::Observer { 86 public gaia::AccountTracker::Observer {
87 public: 87 public:
88 typedef std::map<ExtensionTokenKey, IdentityTokenCacheValue> CachedTokens; 88 typedef std::map<ExtensionTokenKey, IdentityTokenCacheValue> CachedTokens;
89 89
90 class ShutdownObserver { 90 class ShutdownObserver {
91 public: 91 public:
92 virtual void OnShutdown() = 0; 92 virtual void OnShutdown() = 0;
93 }; 93 };
94 94
95 explicit IdentityAPI(content::BrowserContext* context); 95 explicit IdentityAPI(content::BrowserContext* context);
96 virtual ~IdentityAPI(); 96 ~IdentityAPI() override;
97 97
98 // Request serialization queue for getAuthToken. 98 // Request serialization queue for getAuthToken.
99 IdentityMintRequestQueue* mint_queue(); 99 IdentityMintRequestQueue* mint_queue();
100 100
101 // Token cache 101 // Token cache
102 void SetCachedToken(const ExtensionTokenKey& key, 102 void SetCachedToken(const ExtensionTokenKey& key,
103 const IdentityTokenCacheValue& token_data); 103 const IdentityTokenCacheValue& token_data);
104 void EraseCachedToken(const std::string& extension_id, 104 void EraseCachedToken(const std::string& extension_id,
105 const std::string& token); 105 const std::string& token);
106 void EraseAllCachedTokens(); 106 void EraseAllCachedTokens();
107 const IdentityTokenCacheValue& GetCachedToken(const ExtensionTokenKey& key); 107 const IdentityTokenCacheValue& GetCachedToken(const ExtensionTokenKey& key);
108 108
109 const CachedTokens& GetAllCachedTokens(); 109 const CachedTokens& GetAllCachedTokens();
110 110
111 // Account queries. 111 // Account queries.
112 std::vector<std::string> GetAccounts() const; 112 std::vector<std::string> GetAccounts() const;
113 std::string FindAccountKeyByGaiaId(const std::string& gaia_id); 113 std::string FindAccountKeyByGaiaId(const std::string& gaia_id);
114 114
115 // BrowserContextKeyedAPI implementation. 115 // BrowserContextKeyedAPI implementation.
116 virtual void Shutdown() override; 116 void Shutdown() override;
117 static BrowserContextKeyedAPIFactory<IdentityAPI>* GetFactoryInstance(); 117 static BrowserContextKeyedAPIFactory<IdentityAPI>* GetFactoryInstance();
118 118
119 // gaia::AccountTracker::Observer implementation: 119 // gaia::AccountTracker::Observer implementation:
120 virtual void OnAccountAdded(const gaia::AccountIds& ids) override; 120 void OnAccountAdded(const gaia::AccountIds& ids) override;
121 virtual void OnAccountRemoved(const gaia::AccountIds& ids) override; 121 void OnAccountRemoved(const gaia::AccountIds& ids) override;
122 virtual void OnAccountSignInChanged(const gaia::AccountIds& ids, 122 void OnAccountSignInChanged(const gaia::AccountIds& ids,
123 bool is_signed_in) override; 123 bool is_signed_in) override;
124 124
125 void AddShutdownObserver(ShutdownObserver* observer); 125 void AddShutdownObserver(ShutdownObserver* observer);
126 void RemoveShutdownObserver(ShutdownObserver* observer); 126 void RemoveShutdownObserver(ShutdownObserver* observer);
127 127
128 void SetAccountStateForTest(gaia::AccountIds ids, bool is_signed_in); 128 void SetAccountStateForTest(gaia::AccountIds ids, bool is_signed_in);
129 129
130 private: 130 private:
131 friend class BrowserContextKeyedAPIFactory<IdentityAPI>; 131 friend class BrowserContextKeyedAPIFactory<IdentityAPI>;
132 132
133 // BrowserContextKeyedAPI implementation. 133 // BrowserContextKeyedAPI implementation.
(...skipping 12 matching lines...) Expand all
146 void BrowserContextKeyedAPIFactory<IdentityAPI>::DeclareFactoryDependencies(); 146 void BrowserContextKeyedAPIFactory<IdentityAPI>::DeclareFactoryDependencies();
147 147
148 class IdentityGetAccountsFunction : public ChromeUIThreadExtensionFunction { 148 class IdentityGetAccountsFunction : public ChromeUIThreadExtensionFunction {
149 public: 149 public:
150 DECLARE_EXTENSION_FUNCTION("identity.getAccounts", 150 DECLARE_EXTENSION_FUNCTION("identity.getAccounts",
151 IDENTITY_GETACCOUNTS); 151 IDENTITY_GETACCOUNTS);
152 152
153 IdentityGetAccountsFunction(); 153 IdentityGetAccountsFunction();
154 154
155 private: 155 private:
156 virtual ~IdentityGetAccountsFunction(); 156 ~IdentityGetAccountsFunction() override;
157 157
158 // UIThreadExtensionFunction implementation. 158 // UIThreadExtensionFunction implementation.
159 virtual ExtensionFunction::ResponseAction Run() override; 159 ExtensionFunction::ResponseAction Run() override;
160 }; 160 };
161 161
162 // identity.getAuthToken fetches an OAuth 2 function for the 162 // identity.getAuthToken fetches an OAuth 2 function for the
163 // caller. The request has three sub-flows: non-interactive, 163 // caller. The request has three sub-flows: non-interactive,
164 // interactive, and sign-in. 164 // interactive, and sign-in.
165 // 165 //
166 // In the non-interactive flow, getAuthToken requests a token from 166 // In the non-interactive flow, getAuthToken requests a token from
167 // GAIA. GAIA may respond with a token, an error, or "consent 167 // GAIA. GAIA may respond with a token, an error, or "consent
168 // required". In the consent required cases, getAuthToken proceeds to 168 // required". In the consent required cases, getAuthToken proceeds to
169 // the second, interactive phase. 169 // the second, interactive phase.
(...skipping 17 matching lines...) Expand all
187 DECLARE_EXTENSION_FUNCTION("identity.getAuthToken", 187 DECLARE_EXTENSION_FUNCTION("identity.getAuthToken",
188 EXPERIMENTAL_IDENTITY_GETAUTHTOKEN); 188 EXPERIMENTAL_IDENTITY_GETAUTHTOKEN);
189 189
190 IdentityGetAuthTokenFunction(); 190 IdentityGetAuthTokenFunction();
191 191
192 const ExtensionTokenKey* GetExtensionTokenKeyForTest() { 192 const ExtensionTokenKey* GetExtensionTokenKeyForTest() {
193 return token_key_.get(); 193 return token_key_.get();
194 } 194 }
195 195
196 protected: 196 protected:
197 virtual ~IdentityGetAuthTokenFunction(); 197 ~IdentityGetAuthTokenFunction() override;
198 198
199 // IdentitySigninFlow::Delegate implementation: 199 // IdentitySigninFlow::Delegate implementation:
200 virtual void SigninSuccess() override; 200 void SigninSuccess() override;
201 virtual void SigninFailed() override; 201 void SigninFailed() override;
202 202
203 // GaiaWebAuthFlow::Delegate implementation: 203 // GaiaWebAuthFlow::Delegate implementation:
204 virtual void OnGaiaFlowFailure(GaiaWebAuthFlow::Failure failure, 204 void OnGaiaFlowFailure(GaiaWebAuthFlow::Failure failure,
205 GoogleServiceAuthError service_error, 205 GoogleServiceAuthError service_error,
206 const std::string& oauth_error) override; 206 const std::string& oauth_error) override;
207 virtual void OnGaiaFlowCompleted(const std::string& access_token, 207 void OnGaiaFlowCompleted(const std::string& access_token,
208 const std::string& expiration) override; 208 const std::string& expiration) override;
209 209
210 // Starts a login access token request. 210 // Starts a login access token request.
211 virtual void StartLoginAccessTokenRequest(); 211 virtual void StartLoginAccessTokenRequest();
212 212
213 // OAuth2TokenService::Consumer implementation: 213 // OAuth2TokenService::Consumer implementation:
214 virtual void OnGetTokenSuccess(const OAuth2TokenService::Request* request, 214 void OnGetTokenSuccess(const OAuth2TokenService::Request* request,
215 const std::string& access_token, 215 const std::string& access_token,
216 const base::Time& expiration_time) override; 216 const base::Time& expiration_time) override;
217 virtual void OnGetTokenFailure(const OAuth2TokenService::Request* request, 217 void OnGetTokenFailure(const OAuth2TokenService::Request* request,
218 const GoogleServiceAuthError& error) override; 218 const GoogleServiceAuthError& error) override;
219 219
220 // Starts a mint token request to GAIA. 220 // Starts a mint token request to GAIA.
221 // Exposed for testing. 221 // Exposed for testing.
222 virtual void StartGaiaRequest(const std::string& login_access_token); 222 virtual void StartGaiaRequest(const std::string& login_access_token);
223 223
224 // Caller owns the returned instance. 224 // Caller owns the returned instance.
225 // Exposed for testing. 225 // Exposed for testing.
226 virtual OAuth2MintTokenFlow* CreateMintTokenFlow(); 226 virtual OAuth2MintTokenFlow* CreateMintTokenFlow();
227 227
228 scoped_ptr<OAuth2TokenService::Request> login_token_request_; 228 scoped_ptr<OAuth2TokenService::Request> login_token_request_;
229 229
230 private: 230 private:
231 FRIEND_TEST_ALL_PREFIXES(GetAuthTokenFunctionTest, 231 FRIEND_TEST_ALL_PREFIXES(GetAuthTokenFunctionTest,
232 ComponentWithChromeClientId); 232 ComponentWithChromeClientId);
233 FRIEND_TEST_ALL_PREFIXES(GetAuthTokenFunctionTest, 233 FRIEND_TEST_ALL_PREFIXES(GetAuthTokenFunctionTest,
234 ComponentWithNormalClientId); 234 ComponentWithNormalClientId);
235 FRIEND_TEST_ALL_PREFIXES(GetAuthTokenFunctionTest, InteractiveQueueShutdown); 235 FRIEND_TEST_ALL_PREFIXES(GetAuthTokenFunctionTest, InteractiveQueueShutdown);
236 FRIEND_TEST_ALL_PREFIXES(GetAuthTokenFunctionTest, NoninteractiveShutdown); 236 FRIEND_TEST_ALL_PREFIXES(GetAuthTokenFunctionTest, NoninteractiveShutdown);
237 237
238 // ExtensionFunction: 238 // ExtensionFunction:
239 virtual bool RunAsync() override; 239 bool RunAsync() override;
240 240
241 // Helpers to report async function results to the caller. 241 // Helpers to report async function results to the caller.
242 void StartAsyncRun(); 242 void StartAsyncRun();
243 void CompleteAsyncRun(bool success); 243 void CompleteAsyncRun(bool success);
244 void CompleteFunctionWithResult(const std::string& access_token); 244 void CompleteFunctionWithResult(const std::string& access_token);
245 void CompleteFunctionWithError(const std::string& error); 245 void CompleteFunctionWithError(const std::string& error);
246 246
247 // Initiate/complete the sub-flows. 247 // Initiate/complete the sub-flows.
248 void StartSigninFlow(); 248 void StartSigninFlow();
249 void StartMintTokenFlow(IdentityMintRequestQueue::MintType type); 249 void StartMintTokenFlow(IdentityMintRequestQueue::MintType type);
250 void CompleteMintTokenFlow(); 250 void CompleteMintTokenFlow();
251 251
252 // IdentityMintRequestQueue::Request implementation: 252 // IdentityMintRequestQueue::Request implementation:
253 virtual void StartMintToken(IdentityMintRequestQueue::MintType type) override; 253 void StartMintToken(IdentityMintRequestQueue::MintType type) override;
254 254
255 // OAuth2MintTokenFlow::Delegate implementation: 255 // OAuth2MintTokenFlow::Delegate implementation:
256 virtual void OnMintTokenSuccess(const std::string& access_token, 256 void OnMintTokenSuccess(const std::string& access_token,
257 int time_to_live) override; 257 int time_to_live) override;
258 virtual void OnMintTokenFailure( 258 void OnMintTokenFailure(const GoogleServiceAuthError& error) override;
259 const GoogleServiceAuthError& error) override; 259 void OnIssueAdviceSuccess(const IssueAdviceInfo& issue_advice) override;
260 virtual void OnIssueAdviceSuccess(
261 const IssueAdviceInfo& issue_advice) override;
262 260
263 // IdentityAPI::ShutdownObserver implementation: 261 // IdentityAPI::ShutdownObserver implementation:
264 virtual void OnShutdown() override; 262 void OnShutdown() override;
265 263
266 #if defined(OS_CHROMEOS) 264 #if defined(OS_CHROMEOS)
267 // Starts a login access token request for device robot account. This method 265 // Starts a login access token request for device robot account. This method
268 // will be called only in enterprise kiosk mode in ChromeOS. 266 // will be called only in enterprise kiosk mode in ChromeOS.
269 virtual void StartDeviceLoginAccessTokenRequest(); 267 virtual void StartDeviceLoginAccessTokenRequest();
270 #endif 268 #endif
271 269
272 // Methods for invoking UI. Overridable for testing. 270 // Methods for invoking UI. Overridable for testing.
273 virtual void ShowLoginPopup(); 271 virtual void ShowLoginPopup();
274 virtual void ShowOAuthApprovalDialog(const IssueAdviceInfo& issue_advice); 272 virtual void ShowOAuthApprovalDialog(const IssueAdviceInfo& issue_advice);
(...skipping 24 matching lines...) Expand all
299 297
300 class IdentityGetProfileUserInfoFunction 298 class IdentityGetProfileUserInfoFunction
301 : public ChromeUIThreadExtensionFunction { 299 : public ChromeUIThreadExtensionFunction {
302 public: 300 public:
303 DECLARE_EXTENSION_FUNCTION("identity.getProfileUserInfo", 301 DECLARE_EXTENSION_FUNCTION("identity.getProfileUserInfo",
304 IDENTITY_GETPROFILEUSERINFO); 302 IDENTITY_GETPROFILEUSERINFO);
305 303
306 IdentityGetProfileUserInfoFunction(); 304 IdentityGetProfileUserInfoFunction();
307 305
308 private: 306 private:
309 virtual ~IdentityGetProfileUserInfoFunction(); 307 ~IdentityGetProfileUserInfoFunction() override;
310 308
311 // UIThreadExtensionFunction implementation. 309 // UIThreadExtensionFunction implementation.
312 virtual ExtensionFunction::ResponseAction Run() override; 310 ExtensionFunction::ResponseAction Run() override;
313 }; 311 };
314 312
315 class IdentityRemoveCachedAuthTokenFunction 313 class IdentityRemoveCachedAuthTokenFunction
316 : public ChromeSyncExtensionFunction { 314 : public ChromeSyncExtensionFunction {
317 public: 315 public:
318 DECLARE_EXTENSION_FUNCTION("identity.removeCachedAuthToken", 316 DECLARE_EXTENSION_FUNCTION("identity.removeCachedAuthToken",
319 EXPERIMENTAL_IDENTITY_REMOVECACHEDAUTHTOKEN) 317 EXPERIMENTAL_IDENTITY_REMOVECACHEDAUTHTOKEN)
320 IdentityRemoveCachedAuthTokenFunction(); 318 IdentityRemoveCachedAuthTokenFunction();
321 319
322 protected: 320 protected:
323 virtual ~IdentityRemoveCachedAuthTokenFunction(); 321 ~IdentityRemoveCachedAuthTokenFunction() override;
324 322
325 // SyncExtensionFunction implementation: 323 // SyncExtensionFunction implementation:
326 virtual bool RunSync() override; 324 bool RunSync() override;
327 }; 325 };
328 326
329 class IdentityLaunchWebAuthFlowFunction : public ChromeAsyncExtensionFunction, 327 class IdentityLaunchWebAuthFlowFunction : public ChromeAsyncExtensionFunction,
330 public WebAuthFlow::Delegate { 328 public WebAuthFlow::Delegate {
331 public: 329 public:
332 DECLARE_EXTENSION_FUNCTION("identity.launchWebAuthFlow", 330 DECLARE_EXTENSION_FUNCTION("identity.launchWebAuthFlow",
333 EXPERIMENTAL_IDENTITY_LAUNCHWEBAUTHFLOW); 331 EXPERIMENTAL_IDENTITY_LAUNCHWEBAUTHFLOW);
334 332
335 IdentityLaunchWebAuthFlowFunction(); 333 IdentityLaunchWebAuthFlowFunction();
336 334
337 // Tests may override extension_id. 335 // Tests may override extension_id.
338 void InitFinalRedirectURLPrefixForTest(const std::string& extension_id); 336 void InitFinalRedirectURLPrefixForTest(const std::string& extension_id);
339 337
340 private: 338 private:
341 virtual ~IdentityLaunchWebAuthFlowFunction(); 339 ~IdentityLaunchWebAuthFlowFunction() override;
342 virtual bool RunAsync() override; 340 bool RunAsync() override;
343 341
344 // WebAuthFlow::Delegate implementation. 342 // WebAuthFlow::Delegate implementation.
345 virtual void OnAuthFlowFailure(WebAuthFlow::Failure failure) override; 343 void OnAuthFlowFailure(WebAuthFlow::Failure failure) override;
346 virtual void OnAuthFlowURLChange(const GURL& redirect_url) override; 344 void OnAuthFlowURLChange(const GURL& redirect_url) override;
347 virtual void OnAuthFlowTitleChange(const std::string& title) override {} 345 void OnAuthFlowTitleChange(const std::string& title) override {}
348 346
349 // Helper to initialize final URL prefix. 347 // Helper to initialize final URL prefix.
350 void InitFinalRedirectURLPrefix(const std::string& extension_id); 348 void InitFinalRedirectURLPrefix(const std::string& extension_id);
351 349
352 scoped_ptr<WebAuthFlow> auth_flow_; 350 scoped_ptr<WebAuthFlow> auth_flow_;
353 GURL final_url_prefix_; 351 GURL final_url_prefix_;
354 }; 352 };
355 353
356 } // namespace extensions 354 } // namespace extensions
357 355
358 #endif // CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_API_H_ 356 #endif // CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_API_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698