Index: chrome/browser/net/gaia/gaia_oauth_fetcher.h |
diff --git a/chrome/browser/net/gaia/gaia_oauth_fetcher.h b/chrome/browser/net/gaia/gaia_oauth_fetcher.h |
deleted file mode 100644 |
index d8affcc46461ca18a347d6c838eca51f696ad6ad..0000000000000000000000000000000000000000 |
--- a/chrome/browser/net/gaia/gaia_oauth_fetcher.h |
+++ /dev/null |
@@ -1,232 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_BROWSER_NET_GAIA_GAIA_OAUTH_FETCHER_H_ |
-#define CHROME_BROWSER_NET_GAIA_GAIA_OAUTH_FETCHER_H_ |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/memory/scoped_ptr.h" |
-#include "google_apis/gaia/google_service_auth_error.h" |
-#include "net/url_request/url_fetcher_delegate.h" |
-#include "url/gurl.h" |
- |
-class GaiaOAuthConsumer; |
- |
-namespace net { |
-class URLFetcher; |
-class URLRequestContextGetter; |
-class URLRequestStatus; |
-typedef std::vector<std::string> ResponseCookies; |
-} |
- |
-// Authenticate a user using Gaia's OAuth1 and OAuth2 support. |
-// |
-// Users of this class typically desire an OAuth2 Access token scoped for a |
-// specific service. This will typically start with either an interactive |
-// login, using StartOAuthLogin, or with a long-lived OAuth1 all-scope |
-// token obtained through a previous login or other means, using |
-// StartOAuthGetAccessToken. In fact, one can start with any of these |
-// routines: |
-// StartOAuthLogin() |
-// StartGetOAuthTokenRequest() |
-// StartOAuthGetAccessToken() |
-// StartOAuthWrapBridge() |
-// StartUserInfo() |
-// with the expectation that each of these calls the next Start* routine in |
-// the sequence, except for StartUserInfo as it's the last one. |
-// |
-// This class can handle one request at a time, and all calls through an |
-// instance should be serialized. |
-class GaiaOAuthFetcher : public net::URLFetcherDelegate { |
- public: |
- // Defines steps of OAuth process performed by this class. |
- typedef enum { |
- OAUTH1_LOGIN, |
- OAUTH1_REQUEST_TOKEN, |
- OAUTH1_ALL_ACCESS_TOKEN, |
- OAUTH2_SERVICE_ACCESS_TOKEN, |
- USER_INFO, |
- OAUTH2_REVOKE_TOKEN, |
- } RequestType; |
- |
- GaiaOAuthFetcher(GaiaOAuthConsumer* consumer, |
- net::URLRequestContextGetter* getter, |
- const std::string& service_scope); |
- |
- virtual ~GaiaOAuthFetcher(); |
- |
- // Sets the mask of which OAuth fetch steps should be automatically kicked |
- // of upon successful completition of the previous steps. By default, |
- // this class will chain all steps in OAuth proccess. |
- void SetAutoFetchLimit(RequestType limit) { auto_fetch_limit_ = limit; } |
- |
- // Non-UI version of the method above. Initiates Gaia OAuth request token |
- // retrieval. |
- void StartGetOAuthTokenRequest(); |
- |
- // Performs account login based on OAuth1 access token and its secret. |
- void StartOAuthLogin(const char* source, |
- const char* service, |
- const std::string& oauth1_access_token, |
- const std::string& oauth1_access_token_secret); |
- |
- // Obtains an OAuth1 access token and secret |
- // |
- // oauth1_request_token is from GetOAuthToken's result. |
- virtual void StartOAuthGetAccessToken( |
- const std::string& oauth1_request_token); |
- |
- // Obtains an OAuth2 access token using Gaia's OAuth1-to-OAuth2 bridge. |
- // |
- // oauth1_access_token and oauth1_access_token_secret are from |
- // OAuthGetAccessToken's result. |
- // |
- // wrap_token_duration is typically one hour, |
- // which is also the max -- you can only decrease it. |
- // |
- // service_scope will be used as a service name. For example, Chromium Sync |
- // uses https://www.googleapis.com/auth/chromesync for its OAuth2 service |
- // scope. |
- virtual void StartOAuthWrapBridge( |
- const std::string& oauth1_access_token, |
- const std::string& oauth1_access_token_secret, |
- const std::string& wrap_token_duration, |
- const std::string& service_scope); |
- |
- // Obtains user information related to an OAuth2 access token |
- // |
- // oauth2_access_token is from OAuthWrapBridge's result. |
- virtual void StartUserInfo(const std::string& oauth2_access_token); |
- |
- // Starts a request for revoking the given OAuth access token (as requested by |
- // StartOAuthGetAccessToken). |
- virtual void StartOAuthRevokeAccessToken(const std::string& token, |
- const std::string& secret); |
- |
- // Starts a request for revoking the given OAuth Bearer token (as requested by |
- // StartOAuthWrapBridge). |
- virtual void StartOAuthRevokeWrapToken(const std::string& token); |
- |
- // Implementation of net::URLFetcherDelegate |
- virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE; |
- |
- // StartGetOAuthToken (or other Start* routine) been called, but results |
- // are not back yet. |
- virtual bool HasPendingFetch() const; |
- |
- // Stop any URL fetches in progress. |
- virtual void CancelRequest(); |
- |
- protected: |
- // Stores the type of the current request in flight. |
- RequestType request_type_; |
- |
- private: |
- // Process the results of a GetOAuthToken fetch for non-UI driven path. |
- virtual void OnGetOAuthTokenUrlFetched(const net::ResponseCookies& cookies, |
- const net::URLRequestStatus& status, |
- int response_code); |
- |
- // Process the results of a OAuthLogin fetch. |
- virtual void OnOAuthLoginFetched(const std::string& data, |
- const net::URLRequestStatus& status, |
- int response_code); |
- |
- // Process the results of a OAuthGetAccessToken fetch. |
- virtual void OnOAuthGetAccessTokenFetched(const std::string& data, |
- const net::URLRequestStatus& status, |
- int response_code); |
- |
- // Process the results of a OAuthWrapBridge fetch. |
- virtual void OnOAuthWrapBridgeFetched(const std::string& data, |
- const net::URLRequestStatus& status, |
- int response_code); |
- |
- // Process the results of a token revocation fetch. |
- virtual void OnOAuthRevokeTokenFetched(const std::string& data, |
- const net::URLRequestStatus& status, |
- int response_code); |
- |
- // Process the results of a userinfo fetch. |
- virtual void OnUserInfoFetched(const std::string& data, |
- const net::URLRequestStatus& status, |
- int response_code); |
- |
- // Tokenize the results of a OAuthLogin fetch. |
- static void ParseOAuthLoginResponse(const std::string& data, |
- std::string* sid, |
- std::string* lsid, |
- std::string* auth); |
- |
- // Tokenize the results of a OAuthGetAccessToken fetch. |
- static void ParseOAuthGetAccessTokenResponse(const std::string& data, |
- std::string* token, |
- std::string* secret); |
- |
- // Tokenize the results of a OAuthWrapBridge fetch. |
- static void ParseOAuthWrapBridgeResponse(const std::string& data, |
- std::string* token, |
- std::string* expires_in); |
- |
- // Tokenize the results of a userinfo fetch. |
- static void ParseUserInfoResponse(const std::string& data, |
- std::string* email); |
- |
- // From a URLFetcher result, generate an appropriate error. |
- static GoogleServiceAuthError GenerateAuthError( |
- const std::string& data, |
- const net::URLRequestStatus& status, |
- int response_code); |
- |
- // Given parameters, create a OAuth v1 request URL. |
- static GURL MakeGetOAuthTokenUrl(const std::string& oauth1_login_scope, |
- const std::string& product_name); |
- |
- // Given parameters, create a OAuthGetAccessToken request body. |
- static std::string MakeOAuthGetAccessTokenBody( |
- const std::string& oauth1_request_token); |
- |
- // Given parameters, create a OAuthLogin request body. |
- static std::string MakeOAuthLoginBody( |
- const char* source, |
- const char* service, |
- const std::string& oauth1_access_token, |
- const std::string& oauth1_access_token_secret); |
- |
- // Given parameters, create a OAuthWrapBridge request body. |
- static std::string MakeOAuthWrapBridgeBody( |
- const std::string& oauth1_access_token, |
- const std::string& oauth1_access_token_secret, |
- const std::string& wrap_token_duration, |
- const std::string& oauth2_service_scope); |
- |
- // Create a fetcher useable for making any Gaia OAuth request. |
- static net::URLFetcher* CreateGaiaFetcher( |
- net::URLRequestContextGetter* getter, |
- const GURL& gaia_gurl_, |
- const std::string& body, |
- const std::string& headers, |
- bool send_cookies, |
- net::URLFetcherDelegate* delegate); |
- |
- bool ShouldAutoFetch(RequestType fetch_step); |
- |
- // These fields are common to GaiaOAuthFetcher, same every request |
- GaiaOAuthConsumer* const consumer_; |
- net::URLRequestContextGetter* const getter_; |
- |
- // While a fetch is going on: |
- scoped_ptr<net::URLFetcher> fetcher_; |
- std::string request_body_; |
- std::string request_headers_; |
- std::string service_scope_; |
- bool fetch_pending_; |
- RequestType auto_fetch_limit_; |
- |
- DISALLOW_COPY_AND_ASSIGN(GaiaOAuthFetcher); |
-}; |
- |
-#endif // CHROME_BROWSER_NET_GAIA_GAIA_OAUTH_FETCHER_H_ |