Supervised user interstitial: Remove image URL resolving hack.
[chromium-blink-merge.git] / google_apis / gaia / ubertoken_fetcher.h
blobacc4bb4e1a781482f7ba46f1d0d531440438fa2d
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 #ifndef GOOGLE_APIS_GAIA_UBERTOKEN_FETCHER_H_
6 #define GOOGLE_APIS_GAIA_UBERTOKEN_FETCHER_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "google_apis/gaia/gaia_auth_consumer.h"
10 #include "google_apis/gaia/oauth2_token_service.h"
12 // Allow to retrieves an uber-auth token for the user. This class uses the
13 // |OAuth2TokenService| and considers that the user is already logged in. It
14 // will use the OAuth2 access token to generate the uber-auth token.
16 // This class should be used on a single thread, but it can be whichever thread
17 // that you like.
19 // This class can handle one request at a time.
21 class GaiaAuthFetcher;
22 class GoogleServiceAuthError;
24 namespace net {
25 class URLRequestContextGetter;
28 // Callback for the |UbertokenFetcher| class.
29 class UbertokenConsumer {
30 public:
31 UbertokenConsumer() {}
32 virtual ~UbertokenConsumer() {}
33 virtual void OnUbertokenSuccess(const std::string& token) {}
34 virtual void OnUbertokenFailure(const GoogleServiceAuthError& error) {}
37 // Allows to retrieve an uber-auth token.
38 class UbertokenFetcher : public GaiaAuthConsumer,
39 public OAuth2TokenService::Consumer {
40 public:
41 UbertokenFetcher(OAuth2TokenService* token_service,
42 UbertokenConsumer* consumer,
43 net::URLRequestContextGetter* request_context);
44 virtual ~UbertokenFetcher();
46 // Start fetching the token for |account_id|.
47 virtual void StartFetchingToken(const std::string& account_id);
49 // Overriden from GaiaAuthConsumer
50 virtual void OnUberAuthTokenSuccess(const std::string& token) OVERRIDE;
51 virtual void OnUberAuthTokenFailure(
52 const GoogleServiceAuthError& error) OVERRIDE;
54 // Overriden from OAuth2TokenService::Consumer:
55 virtual void OnGetTokenSuccess(const OAuth2TokenService::Request* request,
56 const std::string& access_token,
57 const base::Time& expiration_time) OVERRIDE;
58 virtual void OnGetTokenFailure(const OAuth2TokenService::Request* request,
59 const GoogleServiceAuthError& error) OVERRIDE;
61 private:
62 OAuth2TokenService* token_service_;
63 UbertokenConsumer* consumer_;
64 net::URLRequestContextGetter* request_context_;
65 scoped_ptr<GaiaAuthFetcher> gaia_auth_fetcher_;
66 scoped_ptr<OAuth2TokenService::Request> access_token_request_;
68 DISALLOW_COPY_AND_ASSIGN(UbertokenFetcher);
71 #endif // GOOGLE_APIS_GAIA_UBERTOKEN_FETCHER_H_