Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(317)

Unified Diff: components/signin/ios/browser/profile_oauth2_token_service_ios.h

Issue 1143323005: Refactor AO2TS to make it easier to componentize. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address final comments Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/signin/ios/browser/profile_oauth2_token_service_ios.h
diff --git a/components/signin/ios/browser/profile_oauth2_token_service_ios.h b/components/signin/ios/browser/profile_oauth2_token_service_ios.h
deleted file mode 100644
index 944e2277ea18ff614cea153766928e876c82c83f..0000000000000000000000000000000000000000
--- a/components/signin/ios/browser/profile_oauth2_token_service_ios.h
+++ /dev/null
@@ -1,163 +0,0 @@
-// Copyright 2014 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_SIGNIN_IOS_BROWSER_PROFILE_OAUTH2_TOKEN_SERVICE_IOS_H_
-#define COMPONENTS_SIGNIN_IOS_BROWSER_PROFILE_OAUTH2_TOKEN_SERVICE_IOS_H_
-
-#include <string>
-
-#include "base/threading/thread_checker.h"
-#include "components/signin/core/browser/profile_oauth2_token_service.h"
-#include "components/signin/core/browser/signin_error_controller.h"
-
-class OAuth2AccessTokenFetcher;
-
-namespace ios{
-class ProfileOAuth2TokenServiceIOSProvider;
-}
-
-// A specialization of ProfileOAuth2TokenService that will be returned by
-// ProfileOAuth2TokenServiceFactory for OS_IOS when iOS authentication service
-// is used to lookup OAuth2 tokens.
-//
-// See |ProfileOAuth2TokenService| for usage details.
-//
-// Note: Requests should be started from the UI thread. To start a
-// request from aother thread, please use OAuth2TokenServiceRequest.
-class ProfileOAuth2TokenServiceIOS : public ProfileOAuth2TokenService {
- public:
- // KeyedService
- void Shutdown() override;
-
- // OAuth2TokenService
- bool RefreshTokenIsAvailable(const std::string& account_id) const override;
-
- void InvalidateOAuth2Token(const std::string& account_id,
- const std::string& client_id,
- const ScopeSet& scopes,
- const std::string& access_token) override;
-
- // ProfileOAuth2TokenService
- void Initialize(SigninClient* client,
- SigninErrorController* signin_error_controller) override;
- void LoadCredentials(const std::string& primary_account_id) override;
- std::vector<std::string> GetAccounts() override;
- void UpdateAuthError(const std::string& account_id,
- const GoogleServiceAuthError& error) override;
-
- // This method should not be called when using shared authentication.
- void UpdateCredentials(const std::string& account_id,
- const std::string& refresh_token) override;
-
- // Removes all credentials from this instance of |ProfileOAuth2TokenService|,
- // however, it does not revoke the identities from the device.
- // Subsequent calls to |RefreshTokenIsAvailable| will return |false|.
- void RevokeAllCredentials() override;
-
- // Reloads accounts from the provider. Fires |OnRefreshTokenAvailable| for
- // each new account. Fires |OnRefreshTokenRevoked| for each account that was
- // removed.
- // It expects that there is already a primary account id.
- void ReloadCredentials();
-
- // Sets the primary account and then reloads the accounts from the provider.
- // Should be called when the user signs in to a new account.
- // |primary_account_id| must not be an empty string.
- void ReloadCredentials(const std::string& primary_account_id);
-
- // Sets the account that should be ignored by this token service.
- // |ReloadCredentials| needs to be called for this change to be effective.
- void ExcludeSecondaryAccount(const std::string& account_id);
- void IncludeSecondaryAccount(const std::string& account_id);
- void ExcludeSecondaryAccounts(const std::vector<std::string>& account_ids);
-
- // Excludes all secondary accounts. |ReloadCredentials| needs to be called for
- // this change to be effective.
- void ExcludeAllSecondaryAccounts();
-
- protected:
- friend class ProfileOAuth2TokenServiceFactory;
- friend class ProfileOAuth2TokenServiceIOSTest;
- FRIEND_TEST_ALL_PREFIXES(ProfileOAuth2TokenServiceIOSTest,
- ExcludeSecondaryAccounts);
- FRIEND_TEST_ALL_PREFIXES(ProfileOAuth2TokenServiceIOSTest,
- LoadRevokeCredentialsClearsExcludedAccounts);
-
- ProfileOAuth2TokenServiceIOS();
- ~ProfileOAuth2TokenServiceIOS() override;
-
- OAuth2AccessTokenFetcher* CreateAccessTokenFetcher(
- const std::string& account_id,
- net::URLRequestContextGetter* getter,
- OAuth2AccessTokenConsumer* consumer) override;
-
- // Protected and virtual to be overriden by fake for testing.
-
- // Adds |account_id| to |accounts_| if it does not exist or udpates
- // the auth error state of |account_id| if it exists. Fires
- // |OnRefreshTokenAvailable| if the account info is updated.
- virtual void AddOrUpdateAccount(const std::string& account_id);
-
- // Removes |account_id| from |accounts_|. Fires |OnRefreshTokenRevoked|
- // if the account info is removed.
- virtual void RemoveAccount(const std::string& account_id);
-
- private:
- class AccountInfo : public SigninErrorController::AuthStatusProvider {
- public:
- AccountInfo(SigninErrorController* signin_error_controller,
- const std::string& account_id);
- ~AccountInfo() override;
-
- void SetLastAuthError(const GoogleServiceAuthError& error);
-
- // SigninErrorController::AuthStatusProvider implementation.
- std::string GetAccountId() const override;
- GoogleServiceAuthError GetAuthStatus() const override;
-
- bool marked_for_removal() const { return marked_for_removal_; }
- void set_marked_for_removal(bool marked_for_removal) {
- marked_for_removal_ = marked_for_removal;
- }
-
- private:
- SigninErrorController* signin_error_controller_;
- std::string account_id_;
- GoogleServiceAuthError last_auth_error_;
- bool marked_for_removal_;
-
- DISALLOW_COPY_AND_ASSIGN(AccountInfo);
- };
-
- // Maps the |account_id| of accounts known to ProfileOAuth2TokenService
- // to information about the account.
- typedef std::map<std::string, linked_ptr<AccountInfo> > AccountInfoMap;
-
- // Returns the iOS provider;
- ios::ProfileOAuth2TokenServiceIOSProvider* GetProvider();
-
- // Returns the account ids that should be ignored by this token service.
- std::set<std::string> GetExcludedSecondaryAccounts();
-
- // Returns true if this token service should exclude all secondary accounts.
- bool GetExcludeAllSecondaryAccounts();
-
- // Clears exclude secondary accounts preferences.
- void ClearExcludedSecondaryAccounts();
-
- // The primary account id.
- std::string primary_account_id_;
-
- // Info about the existing accounts.
- AccountInfoMap accounts_;
-
- // Calls to this class are expected to be made from the browser UI thread.
- // The purpose of this checker is to detect access to
- // ProfileOAuth2TokenService from multiple threads in upstream code.
- base::ThreadChecker thread_checker_;
-
- DISALLOW_COPY_AND_ASSIGN(ProfileOAuth2TokenServiceIOS);
-};
-
-#endif // COMPONENTS_SIGNIN_IOS_BROWSER_PROFILE_OAUTH2_TOKEN_SERVICE_IOS_H_
« no previous file with comments | « components/signin/ios/browser/BUILD.gn ('k') | components/signin/ios/browser/profile_oauth2_token_service_ios.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698