| Index: chrome/browser/extensions/api/identity/identity_api.cc
|
| diff --git a/chrome/browser/extensions/api/identity/identity_api.cc b/chrome/browser/extensions/api/identity/identity_api.cc
|
| index e8f0aaf9e712fe6534438fd81cab515297aadb5b..ce648c676afaca991cc89d4792634aa9c3eaafa9 100644
|
| --- a/chrome/browser/extensions/api/identity/identity_api.cc
|
| +++ b/chrome/browser/extensions/api/identity/identity_api.cc
|
| @@ -15,24 +15,19 @@
|
| #include "base/values.h"
|
| #include "chrome/browser/app_mode/app_mode_utils.h"
|
| #include "chrome/browser/extensions/extension_function_dispatcher.h"
|
| -#include "chrome/browser/extensions/extension_install_prompt.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| -#include "chrome/browser/extensions/permissions_updater.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/signin/signin_manager.h"
|
| #include "chrome/browser/signin/signin_manager_factory.h"
|
| #include "chrome/browser/signin/token_service.h"
|
| #include "chrome/browser/signin/token_service_factory.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| #include "chrome/common/extensions/api/identity.h"
|
| #include "chrome/common/extensions/api/identity/oauth2_manifest_handler.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_manifest_constants.h"
|
| #include "chrome/common/url_constants.h"
|
| -#include "content/public/common/page_transition_types.h"
|
| #include "google_apis/gaia/gaia_constants.h"
|
| #include "googleurl/src/gurl.h"
|
| -#include "ui/base/window_open_disposition.h"
|
|
|
| #if defined(OS_CHROMEOS)
|
| #include "chrome/browser/chromeos/login/user_manager.h"
|
| @@ -50,6 +45,7 @@ const char kUserNotSignedIn[] = "The user is not signed in.";
|
| const char kInteractionRequired[] = "User interaction required.";
|
| const char kInvalidRedirect[] = "Did not redirect to the right URL.";
|
| const char kOffTheRecord[] = "Identity API is disabled in incognito windows.";
|
| +const char kPageLoadFailure[] = "Authorization page could not be loaded.";
|
|
|
| const int kCachedIssueAdviceTTLSeconds = 1;
|
| } // namespace identity_constants
|
| @@ -317,6 +313,12 @@ void IdentityGetAuthTokenFunction::OnGaiaFlowFailure(
|
| error = MapOAuth2ErrorToDescription(oauth_error);
|
| break;
|
|
|
| + // TODO(courage): load failure tests
|
| +
|
| + case GaiaWebAuthFlow::LOAD_FAILED:
|
| + error = identity_constants::kPageLoadFailure;
|
| + break;
|
| +
|
| default:
|
| NOTREACHED() << "Unexpected error from gaia web auth flow: " << failure;
|
| error = identity_constants::kInvalidRedirect;
|
| @@ -356,14 +358,10 @@ void IdentityGetAuthTokenFunction::ShowLoginPopup() {
|
|
|
| void IdentityGetAuthTokenFunction::ShowOAuthApprovalDialog(
|
| const IssueAdviceInfo& issue_advice) {
|
| - Browser* current_browser = this->GetCurrentBrowser();
|
| - chrome::HostDesktopType host_desktop_type =
|
| - current_browser ? current_browser->host_desktop_type()
|
| - : chrome::GetActiveDesktop();
|
| const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(GetExtension());
|
|
|
| gaia_web_auth_flow_.reset(new GaiaWebAuthFlow(
|
| - this, profile(), host_desktop_type, GetExtension()->id(), oauth2_info));
|
| + this, profile(), GetExtension()->id(), oauth2_info));
|
| gaia_web_auth_flow_->Start();
|
| }
|
|
|
| @@ -459,16 +457,9 @@ bool IdentityLaunchWebAuthFlowFunction::RunImpl() {
|
| // scheme for this version of the API.)
|
| InitFinalRedirectURLPrefix(GetExtension()->id());
|
|
|
| - gfx::Rect initial_bounds;
|
| -
|
| AddRef(); // Balanced in OnAuthFlowSuccess/Failure.
|
|
|
| - Browser* current_browser = this->GetCurrentBrowser();
|
| - chrome::HostDesktopType host_desktop_type = current_browser ?
|
| - current_browser->host_desktop_type() : chrome::GetActiveDesktop();
|
| - auth_flow_.reset(new WebAuthFlow(
|
| - this, profile(), auth_url, mode, initial_bounds,
|
| - host_desktop_type));
|
| + auth_flow_.reset(new WebAuthFlow(this, profile(), auth_url, mode));
|
| auth_flow_->Start();
|
| return true;
|
| }
|
| @@ -495,6 +486,9 @@ void IdentityLaunchWebAuthFlowFunction::OnAuthFlowFailure(
|
| case WebAuthFlow::INTERACTION_REQUIRED:
|
| error_ = identity_constants::kInteractionRequired;
|
| break;
|
| + case WebAuthFlow::LOAD_FAILED:
|
| + error_ = identity_constants::kPageLoadFailure;
|
| + break;
|
| default:
|
| NOTREACHED() << "Unexpected error from web auth flow: " << failure;
|
| error_ = identity_constants::kInvalidRedirect;
|
|
|