summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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_;