summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-17 02:31:35 +0000
committerzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-17 02:31:35 +0000
commit46b66a0ffa66c7f5e87ce9b43292a574a9585fd9 (patch)
treebcc2d637bd19c7c14330a459de514c802226e140
parent91f2a42fb10242f9f9311a4c42a978c2d8dedd1d (diff)
downloadchromium_src-46b66a0ffa66c7f5e87ce9b43292a574a9585fd9.zip
chromium_src-46b66a0ffa66c7f5e87ce9b43292a574a9585fd9.tar.gz
chromium_src-46b66a0ffa66c7f5e87ce9b43292a574a9585fd9.tar.bz2
Merge 177114
> Fixed OAuth2 policy fetching retry logic. > > BUG=169999 > TEST=desktopui_ScreenLocker (ChromeOS BVT) > > > Review URL: https://chromiumcodereview.appspot.com/11969010 TBR=zelidrag@chromium.org Review URL: https://codereview.chromium.org/11970028 git-svn-id: svn://svn.chromium.org/chrome/branches/1364/src@177317 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/login/oauth2_policy_fetcher.cc17
-rw-r--r--chrome/browser/chromeos/login/oauth2_policy_fetcher.h8
2 files changed, 13 insertions, 12 deletions
diff --git a/chrome/browser/chromeos/login/oauth2_policy_fetcher.cc b/chrome/browser/chromeos/login/oauth2_policy_fetcher.cc
index 77f9fa6..364c5ba 100644
--- a/chrome/browser/chromeos/login/oauth2_policy_fetcher.cc
+++ b/chrome/browser/chromeos/login/oauth2_policy_fetcher.cc
@@ -38,12 +38,8 @@ const char kServiceScopeChromeOSDeviceManagement[] =
OAuth2PolicyFetcher::OAuth2PolicyFetcher(
net::URLRequestContextGetter* auth_context_getter,
net::URLRequestContextGetter* system_context_getter)
- : refresh_token_fetcher_(
- new GaiaAuthFetcher(this,
- GaiaConstants::kChromeSource,
- auth_context_getter)),
- access_token_fetcher_(
- new OAuth2AccessTokenFetcher(this, system_context_getter)),
+ : auth_context_getter_(auth_context_getter),
+ system_context_getter_(system_context_getter),
retry_count_(0),
failed_(false) {
}
@@ -51,8 +47,7 @@ OAuth2PolicyFetcher::OAuth2PolicyFetcher(
OAuth2PolicyFetcher::OAuth2PolicyFetcher(
net::URLRequestContextGetter* system_context_getter,
const std::string& oauth2_refresh_token)
- : access_token_fetcher_(
- new OAuth2AccessTokenFetcher(this, system_context_getter)),
+ : system_context_getter_(system_context_getter),
oauth2_refresh_token_(oauth2_refresh_token),
retry_count_(0),
failed_(false) {
@@ -72,12 +67,18 @@ void OAuth2PolicyFetcher::Start() {
void OAuth2PolicyFetcher::StartFetchingRefreshToken() {
DCHECK(refresh_token_fetcher_.get());
+ refresh_token_fetcher_.reset(
+ new GaiaAuthFetcher(this,
+ GaiaConstants::kChromeSource,
+ auth_context_getter_));
refresh_token_fetcher_->StartCookieForOAuthLoginTokenExchange(EmptyString());
}
void OAuth2PolicyFetcher::StartFetchingAccessToken() {
std::vector<std::string> scopes;
scopes.push_back(kServiceScopeChromeOSDeviceManagement);
+ access_token_fetcher_.reset(
+ new OAuth2AccessTokenFetcher(this, system_context_getter_));
access_token_fetcher_->Start(
GaiaUrls::GetInstance()->oauth2_chrome_client_id(),
GaiaUrls::GetInstance()->oauth2_chrome_client_secret(),
diff --git a/chrome/browser/chromeos/login/oauth2_policy_fetcher.h b/chrome/browser/chromeos/login/oauth2_policy_fetcher.h
index 68688aa..2376fb3 100644
--- a/chrome/browser/chromeos/login/oauth2_policy_fetcher.h
+++ b/chrome/browser/chromeos/login/oauth2_policy_fetcher.h
@@ -10,18 +10,16 @@
#include "base/basictypes.h"
#include "base/callback_forward.h"
#include "base/compiler_specific.h"
+#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "google_apis/gaia/gaia_auth_consumer.h"
#include "google_apis/gaia/oauth2_access_token_consumer.h"
+#include "net/url_request/url_request_context_getter.h"
class GaiaAuthFetcher;
class OAuth2AccessTokenFetcher;
-namespace net {
-class URLRequestContextGetter;
-}
-
namespace chromeos {
// Fetches the OAuth2 token for the device management service. Since Profile
@@ -90,6 +88,8 @@ class OAuth2PolicyFetcher : public base::SupportsWeakPtr<OAuth2PolicyFetcher>,
void RetryOnError(const GoogleServiceAuthError& error,
const base::Closure& task);
+ scoped_refptr<net::URLRequestContextGetter> auth_context_getter_;
+ scoped_refptr<net::URLRequestContextGetter> system_context_getter_;
scoped_ptr<GaiaAuthFetcher> refresh_token_fetcher_;
scoped_ptr<OAuth2AccessTokenFetcher> access_token_fetcher_;
std::string policy_token_;