| Index: chrome/browser/extensions/api/identity/identity_api.h
|
| diff --git a/chrome/browser/extensions/api/identity/identity_api.h b/chrome/browser/extensions/api/identity/identity_api.h
|
| index 9fb6ddcb2a5db0fbe6fae30138f0957380d72610..ed998714485f342fc32b5ea6924cc08ba2c859f9 100644
|
| --- a/chrome/browser/extensions/api/identity/identity_api.h
|
| +++ b/chrome/browser/extensions/api/identity/identity_api.h
|
| @@ -11,23 +11,24 @@
|
|
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/weak_ptr.h"
|
| +#include "chrome/browser/extensions/api/identity/gaia_web_auth_flow.h"
|
| #include "chrome/browser/extensions/api/identity/identity_mint_queue.h"
|
| #include "chrome/browser/extensions/api/identity/identity_signin_flow.h"
|
| #include "chrome/browser/extensions/api/identity/web_auth_flow.h"
|
| #include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
|
| #include "chrome/browser/extensions/extension_function.h"
|
| -#include "chrome/browser/extensions/extension_install_prompt.h"
|
| #include "chrome/browser/signin/signin_global_error.h"
|
| #include "google_apis/gaia/oauth2_mint_token_flow.h"
|
|
|
| -class GetAuthTokenFunctionTest;
|
| -class MockGetAuthTokenFunction;
|
| class GoogleServiceAuthError;
|
| class Profile;
|
| class SigninManagerBase;
|
|
|
| namespace extensions {
|
|
|
| +class GetAuthTokenFunctionTest;
|
| +class MockGetAuthTokenFunction;
|
| +
|
| namespace identity_constants {
|
| extern const char kInvalidClientId[];
|
| extern const char kInvalidScopes[];
|
| @@ -58,7 +59,7 @@ extern const char kOffTheRecord[];
|
| // new login token, there is a sign-in flow. If that flow completes
|
| // successfully, getAuthToken proceeds to the non-interactive flow.
|
| class IdentityGetAuthTokenFunction : public AsyncExtensionFunction,
|
| - public ExtensionInstallPrompt::Delegate,
|
| + public GaiaWebAuthFlow::Delegate,
|
| public IdentityMintRequestQueue::Request,
|
| public OAuth2MintTokenFlow::Delegate,
|
| public IdentitySigninFlow::Delegate {
|
| @@ -102,9 +103,12 @@ class IdentityGetAuthTokenFunction : public AsyncExtensionFunction,
|
| virtual void SigninSuccess(const std::string& token) OVERRIDE;
|
| virtual void SigninFailed() OVERRIDE;
|
|
|
| - // ExtensionInstallPrompt::Delegate implementation:
|
| - virtual void InstallUIProceed() OVERRIDE;
|
| - virtual void InstallUIAbort(bool user_initiated) OVERRIDE;
|
| + // GaiaWebAuthFlow::Delegate implementation:
|
| + virtual void OnGaiaFlowFailure(GaiaWebAuthFlow::Failure failure,
|
| + GoogleServiceAuthError service_error,
|
| + const std::string& oauth_error) OVERRIDE;
|
| + virtual void OnGaiaFlowCompleted(const std::string& access_token,
|
| + const std::string& expiration) OVERRIDE;
|
|
|
| // Starts a mint token request to GAIA.
|
| void StartGaiaRequest(OAuth2MintTokenFlow::Mode mode);
|
| @@ -119,6 +123,10 @@ class IdentityGetAuthTokenFunction : public AsyncExtensionFunction,
|
| // Checks if there is a master login token to mint tokens for the extension.
|
| virtual bool HasLoginToken() const;
|
|
|
| + // Maps OAuth2 protocol errors to an error message returned to the
|
| + // developer in chrome.runtime.lastError.
|
| + std::string MapOAuth2ErrorToDescription(const std::string& error);
|
| +
|
| bool should_prompt_for_scopes_;
|
| IdentityMintRequestQueue::MintType mint_token_flow_type_;
|
| scoped_ptr<OAuth2MintTokenFlow> mint_token_flow_;
|
| @@ -128,7 +136,7 @@ class IdentityGetAuthTokenFunction : public AsyncExtensionFunction,
|
| // When launched in interactive mode, and if there is no existing grant,
|
| // a permissions prompt will be popped up to the user.
|
| IssueAdviceInfo issue_advice_;
|
| - scoped_ptr<ExtensionInstallPrompt> install_ui_;
|
| + scoped_ptr<GaiaWebAuthFlow> gaia_web_auth_flow_;
|
| scoped_ptr<IdentitySigninFlow> signin_flow_;
|
| };
|
|
|
| @@ -163,6 +171,7 @@ class IdentityLaunchWebAuthFlowFunction : public AsyncExtensionFunction,
|
| // WebAuthFlow::Delegate implementation.
|
| virtual void OnAuthFlowFailure(WebAuthFlow::Failure failure) OVERRIDE;
|
| virtual void OnAuthFlowURLChange(const GURL& redirect_url) OVERRIDE;
|
| + virtual void OnAuthFlowTitleChange(const std::string& title) OVERRIDE {}
|
|
|
| // Helper to initialize final URL prefix.
|
| void InitFinalRedirectURLPrefix(const std::string& extension_id);
|
|
|