Move ActiveAccountAccessTokenFetcherImpl into DeviceIdentityProvider
This class provides an implementation of
ActiveAccountAccessTokenFetcher that is backed by
DeviceOAuth2TokenService. With the pending removal of
OAuth2TokenService, the class needs to live in //chrome where it can
have direct knowledge of DeviceOAuth2TokenService. This CL makes that
change.
Bug: 967598
Change-Id: I585dc5b0f27dad7051256f0550867e23733d85d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1675550
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#672058}
diff --git a/chrome/browser/chromeos/settings/device_identity_provider.cc b/chrome/browser/chromeos/settings/device_identity_provider.cc
index 00776d9a..b37b14d 100644
--- a/chrome/browser/chromeos/settings/device_identity_provider.cc
+++ b/chrome/browser/chromeos/settings/device_identity_provider.cc
@@ -5,10 +5,84 @@
#include "chrome/browser/chromeos/settings/device_identity_provider.h"
#include "chrome/browser/chromeos/settings/device_oauth2_token_service.h"
-#include "components/invalidation/public/active_account_access_token_fetcher_impl.h"
namespace chromeos {
+namespace {
+
+// An implementation of ActiveAccountAccessTokenFetcher that is backed by
+// DeviceOAuth2TokenService.
+class ActiveAccountAccessTokenFetcherImpl
+ : public invalidation::ActiveAccountAccessTokenFetcher,
+ OAuth2TokenService::Consumer {
+ public:
+ ActiveAccountAccessTokenFetcherImpl(
+ const std::string& active_account_id,
+ const std::string& oauth_consumer_name,
+ DeviceOAuth2TokenService* token_service,
+ const OAuth2TokenService::ScopeSet& scopes,
+ invalidation::ActiveAccountAccessTokenCallback callback);
+ ~ActiveAccountAccessTokenFetcherImpl() override;
+
+ private:
+ // OAuth2TokenService::Consumer implementation.
+ void OnGetTokenSuccess(
+ const OAuth2TokenService::Request* request,
+ const OAuth2AccessTokenConsumer::TokenResponse& token_response) override;
+ void OnGetTokenFailure(const OAuth2TokenService::Request* request,
+ const GoogleServiceAuthError& error) override;
+
+ // Invokes |callback_| with (|access_token|, |error|).
+ void HandleTokenRequestCompletion(const OAuth2TokenService::Request* request,
+ const GoogleServiceAuthError& error,
+ const std::string& access_token);
+
+ invalidation::ActiveAccountAccessTokenCallback callback_;
+ std::unique_ptr<OAuth2TokenService::Request> access_token_request_;
+
+ DISALLOW_COPY_AND_ASSIGN(ActiveAccountAccessTokenFetcherImpl);
+};
+
+} // namespace
+
+ActiveAccountAccessTokenFetcherImpl::ActiveAccountAccessTokenFetcherImpl(
+ const std::string& active_account_id,
+ const std::string& oauth_consumer_name,
+ DeviceOAuth2TokenService* token_service,
+ const OAuth2TokenService::ScopeSet& scopes,
+ invalidation::ActiveAccountAccessTokenCallback callback)
+ : OAuth2TokenService::Consumer(oauth_consumer_name),
+ callback_(std::move(callback)) {
+ access_token_request_ =
+ token_service->StartRequest(active_account_id, scopes, this);
+}
+
+ActiveAccountAccessTokenFetcherImpl::~ActiveAccountAccessTokenFetcherImpl() {}
+
+void ActiveAccountAccessTokenFetcherImpl::OnGetTokenSuccess(
+ const OAuth2TokenService::Request* request,
+ const OAuth2AccessTokenConsumer::TokenResponse& token_response) {
+ HandleTokenRequestCompletion(request, GoogleServiceAuthError::AuthErrorNone(),
+ token_response.access_token);
+}
+
+void ActiveAccountAccessTokenFetcherImpl::OnGetTokenFailure(
+ const OAuth2TokenService::Request* request,
+ const GoogleServiceAuthError& error) {
+ HandleTokenRequestCompletion(request, error, std::string());
+}
+
+void ActiveAccountAccessTokenFetcherImpl::HandleTokenRequestCompletion(
+ const OAuth2TokenService::Request* request,
+ const GoogleServiceAuthError& error,
+ const std::string& access_token) {
+ DCHECK_EQ(request, access_token_request_.get());
+ std::unique_ptr<OAuth2TokenService::Request> request_deleter(
+ std::move(access_token_request_));
+
+ std::move(callback_).Run(error, access_token);
+}
+
DeviceIdentityProvider::DeviceIdentityProvider(
chromeos::DeviceOAuth2TokenService* token_service)
: token_service_(token_service) {
@@ -57,7 +131,7 @@
const std::string& oauth_consumer_name,
const OAuth2TokenService::ScopeSet& scopes,
invalidation::ActiveAccountAccessTokenCallback callback) {
- return std::make_unique<invalidation::ActiveAccountAccessTokenFetcherImpl>(
+ return std::make_unique<ActiveAccountAccessTokenFetcherImpl>(
GetActiveAccountId(), oauth_consumer_name, token_service_, scopes,
std::move(callback));
}
diff --git a/components/invalidation/impl/profile_identity_provider.cc b/components/invalidation/impl/profile_identity_provider.cc
index d208585..487e2805 100644
--- a/components/invalidation/impl/profile_identity_provider.cc
+++ b/components/invalidation/impl/profile_identity_provider.cc
@@ -5,7 +5,6 @@
#include "components/invalidation/impl/profile_identity_provider.h"
#include "base/bind.h"
-#include "components/invalidation/public/active_account_access_token_fetcher_impl.h"
namespace invalidation {
diff --git a/components/invalidation/public/BUILD.gn b/components/invalidation/public/BUILD.gn
index 3d55989..aa76520 100644
--- a/components/invalidation/public/BUILD.gn
+++ b/components/invalidation/public/BUILD.gn
@@ -8,8 +8,6 @@
"ack_handle.h",
"ack_handler.cc",
"ack_handler.h",
- "active_account_access_token_fetcher_impl.cc",
- "active_account_access_token_fetcher_impl.h",
"identity_provider.cc",
"identity_provider.h",
"invalidation.cc",
diff --git a/components/invalidation/public/active_account_access_token_fetcher_impl.cc b/components/invalidation/public/active_account_access_token_fetcher_impl.cc
deleted file mode 100644
index f6b6d30..0000000
--- a/components/invalidation/public/active_account_access_token_fetcher_impl.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2018 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.
-
-#include "components/invalidation/public/active_account_access_token_fetcher_impl.h"
-
-namespace invalidation {
-
-ActiveAccountAccessTokenFetcherImpl::ActiveAccountAccessTokenFetcherImpl(
- const std::string& active_account_id,
- const std::string& oauth_consumer_name,
- OAuth2TokenService* token_service,
- const OAuth2TokenService::ScopeSet& scopes,
- ActiveAccountAccessTokenCallback callback)
- : OAuth2TokenService::Consumer(oauth_consumer_name),
- callback_(std::move(callback)) {
- access_token_request_ =
- token_service->StartRequest(active_account_id, scopes, this);
-}
-
-ActiveAccountAccessTokenFetcherImpl::~ActiveAccountAccessTokenFetcherImpl() {}
-
-void ActiveAccountAccessTokenFetcherImpl::OnGetTokenSuccess(
- const OAuth2TokenService::Request* request,
- const OAuth2AccessTokenConsumer::TokenResponse& token_response) {
- HandleTokenRequestCompletion(request, GoogleServiceAuthError::AuthErrorNone(),
- token_response.access_token);
-}
-
-void ActiveAccountAccessTokenFetcherImpl::OnGetTokenFailure(
- const OAuth2TokenService::Request* request,
- const GoogleServiceAuthError& error) {
- HandleTokenRequestCompletion(request, error, std::string());
-}
-
-void ActiveAccountAccessTokenFetcherImpl::HandleTokenRequestCompletion(
- const OAuth2TokenService::Request* request,
- const GoogleServiceAuthError& error,
- const std::string& access_token) {
- DCHECK_EQ(request, access_token_request_.get());
- std::unique_ptr<OAuth2TokenService::Request> request_deleter(
- std::move(access_token_request_));
-
- std::move(callback_).Run(error, access_token);
-}
-
-} // namespace invalidation
diff --git a/components/invalidation/public/active_account_access_token_fetcher_impl.h b/components/invalidation/public/active_account_access_token_fetcher_impl.h
deleted file mode 100644
index 7d6f16f..0000000
--- a/components/invalidation/public/active_account_access_token_fetcher_impl.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2018 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 COMPONENTS_INVALIDATION_PUBLIC_ACTIVE_ACCOUNT_ACCESS_TOKEN_FETCHER_IMPL_H_
-#define COMPONENTS_INVALIDATION_PUBLIC_ACTIVE_ACCOUNT_ACCESS_TOKEN_FETCHER_IMPL_H_
-
-#include <string>
-
-#include "base/macros.h"
-#include "base/time/time.h"
-#include "components/invalidation/public/identity_provider.h"
-#include "google_apis/gaia/oauth2_token_service.h"
-
-namespace invalidation {
-
-// An implementation of ActiveAccountAccessTokenFetcher that is backed by
-// OAuth2TokenService.
-// TODO(809452): Once ProfileIdentityProvider is converted to talk to
-// IdentityManager, this helper class should either be hidden inside
-// DeviceIdentityProvider or moved to live next to it.
-class ActiveAccountAccessTokenFetcherImpl
- : public ActiveAccountAccessTokenFetcher,
- OAuth2TokenService::Consumer {
- public:
- ActiveAccountAccessTokenFetcherImpl(
- const std::string& active_account_id,
- const std::string& oauth_consumer_name,
- OAuth2TokenService* token_service,
- const OAuth2TokenService::ScopeSet& scopes,
- ActiveAccountAccessTokenCallback callback);
- ~ActiveAccountAccessTokenFetcherImpl() override;
-
- private:
- // OAuth2TokenService::Consumer implementation.
- void OnGetTokenSuccess(
- const OAuth2TokenService::Request* request,
- const OAuth2AccessTokenConsumer::TokenResponse& token_response) override;
- void OnGetTokenFailure(const OAuth2TokenService::Request* request,
- const GoogleServiceAuthError& error) override;
-
- // Invokes |callback_| with (|access_token|, |error|).
- void HandleTokenRequestCompletion(const OAuth2TokenService::Request* request,
- const GoogleServiceAuthError& error,
- const std::string& access_token);
-
- ActiveAccountAccessTokenCallback callback_;
- std::unique_ptr<OAuth2TokenService::Request> access_token_request_;
-
- DISALLOW_COPY_AND_ASSIGN(ActiveAccountAccessTokenFetcherImpl);
-};
-
-} // namespace invalidation
-
-#endif // COMPONENTS_INVALIDATION_PUBLIC_ACTIVE_ACCOUNT_ACCESS_TOKEN_FETCHER_IMPL_H_