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

Side by Side Diff: chrome/browser/signin/fake_profile_oauth2_token_service.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 roger's 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_SIGNIN_FAKE_PROFILE_OAUTH2_TOKEN_SERVICE_H_ 5 #ifndef CHROME_BROWSER_SIGNIN_FAKE_PROFILE_OAUTH2_TOKEN_SERVICE_H_
6 #define CHROME_BROWSER_SIGNIN_FAKE_PROFILE_OAUTH2_TOKEN_SERVICE_H_ 6 #define CHROME_BROWSER_SIGNIN_FAKE_PROFILE_OAUTH2_TOKEN_SERVICE_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 std::string account_id; 51 std::string account_id;
52 std::string client_id; 52 std::string client_id;
53 std::string client_secret; 53 std::string client_secret;
54 ScopeSet scopes; 54 ScopeSet scopes;
55 base::WeakPtr<RequestImpl> request; 55 base::WeakPtr<RequestImpl> request;
56 }; 56 };
57 57
58 FakeProfileOAuth2TokenService(); 58 FakeProfileOAuth2TokenService();
59 ~FakeProfileOAuth2TokenService() override; 59 ~FakeProfileOAuth2TokenService() override;
60 60
61 // Overriden to make sure it works on Android.
62 bool RefreshTokenIsAvailable(const std::string& account_id) const override;
63
64 // Overriden to make sure it works on iOS.
65 void LoadCredentials(const std::string& primary_account_id) override;
66
67 std::vector<std::string> GetAccounts() override;
68
69 // Overriden to make sure it works on Android. Simply calls
70 // IssueRefreshToken().
71 void UpdateCredentials(const std::string& account_id,
72 const std::string& refresh_token) override;
73
74 // Sets the current refresh token. If |token| is non-empty, this will invoke
75 // OnRefreshTokenAvailable() on all Observers, otherwise this will invoke
76 // OnRefreshTokenRevoked().
77 void IssueRefreshToken(const std::string& token);
78
79 // TODO(fgorski,rogerta): Merge with UpdateCredentials when this class fully
80 // supports multiple accounts.
81 void IssueRefreshTokenForUser(const std::string& account_id,
82 const std::string& token);
83
84 // Fire OnRefreshTokensLoaded on all observers.
85 void IssueAllRefreshTokensLoaded();
86
87 // Gets a list of active requests (can be used by tests to validate that the 61 // Gets a list of active requests (can be used by tests to validate that the
88 // correct request has been issued). 62 // correct request has been issued).
89 std::vector<PendingRequest> GetPendingRequests(); 63 std::vector<PendingRequest> GetPendingRequests();
90 64
91 // Helper routines to issue tokens for pending requests. 65 // Helper routines to issue tokens for pending requests.
92 void IssueAllTokensForAccount(const std::string& account_id, 66 void IssueAllTokensForAccount(const std::string& account_id,
93 const std::string& access_token, 67 const std::string& access_token,
94 const base::Time& expiration); 68 const base::Time& expiration);
95 69
96 void IssueErrorForAllPendingRequestsForAccount( 70 void IssueErrorForAllPendingRequestsForAccount(
(...skipping 18 matching lines...) Expand all
115 89
116 protected: 90 protected:
117 // OAuth2TokenService overrides. 91 // OAuth2TokenService overrides.
118 void FetchOAuth2Token(RequestImpl* request, 92 void FetchOAuth2Token(RequestImpl* request,
119 const std::string& account_id, 93 const std::string& account_id,
120 net::URLRequestContextGetter* getter, 94 net::URLRequestContextGetter* getter,
121 const std::string& client_id, 95 const std::string& client_id,
122 const std::string& client_secret, 96 const std::string& client_secret,
123 const ScopeSet& scopes) override; 97 const ScopeSet& scopes) override;
124 98
125 OAuth2AccessTokenFetcher* CreateAccessTokenFetcher( 99 void InvalidateAccessTokenImpl(const std::string& account_id,
126 const std::string& account_id, 100 const std::string& client_id,
127 net::URLRequestContextGetter* getter, 101 const ScopeSet& scopes,
128 OAuth2AccessTokenConsumer* consumer) override; 102 const std::string& access_token) override;
129
130 void InvalidateOAuth2Token(const std::string& account_id,
131 const std::string& client_id,
132 const ScopeSet& scopes,
133 const std::string& access_token) override;
134
135 net::URLRequestContextGetter* GetRequestContext() override;
136 103
137 private: 104 private:
138 // Helper function to complete pending requests - if |all_scopes| is true, 105 // Helper function to complete pending requests - if |all_scopes| is true,
139 // then all pending requests are completed, otherwise, only those requests 106 // then all pending requests are completed, otherwise, only those requests
140 // matching |scopes| are completed. If |account_id| is empty, then pending 107 // matching |scopes| are completed. If |account_id| is empty, then pending
141 // requests for all accounts are completed, otherwise only requests for the 108 // requests for all accounts are completed, otherwise only requests for the
142 // given account. 109 // given account.
143 void CompleteRequests(const std::string& account_id, 110 void CompleteRequests(const std::string& account_id,
144 bool all_scopes, 111 bool all_scopes,
145 const ScopeSet& scopes, 112 const ScopeSet& scopes,
146 const GoogleServiceAuthError& error, 113 const GoogleServiceAuthError& error,
147 const std::string& access_token, 114 const std::string& access_token,
148 const base::Time& expiration); 115 const base::Time& expiration);
149 116
150 std::string GetRefreshToken(const std::string& account_id) const;
151
152 std::vector<PendingRequest> pending_requests_; 117 std::vector<PendingRequest> pending_requests_;
153 118
154 // Maps account ids to their refresh token strings.
155 std::map<std::string, std::string> refresh_tokens_;
156
157 // If true, then this fake service will post responses to 119 // If true, then this fake service will post responses to
158 // |FetchOAuth2Token| on the current run loop. There is no need to call 120 // |FetchOAuth2Token| on the current run loop. There is no need to call
159 // |IssueTokenForScope| in this case. 121 // |IssueTokenForScope| in this case.
160 bool auto_post_fetch_response_on_message_loop_; 122 bool auto_post_fetch_response_on_message_loop_;
161 123
162 base::WeakPtrFactory<FakeProfileOAuth2TokenService> weak_ptr_factory_; 124 base::WeakPtrFactory<FakeProfileOAuth2TokenService> weak_ptr_factory_;
163 125
164 DISALLOW_COPY_AND_ASSIGN(FakeProfileOAuth2TokenService); 126 DISALLOW_COPY_AND_ASSIGN(FakeProfileOAuth2TokenService);
165 }; 127 };
166 128
167 #endif // CHROME_BROWSER_SIGNIN_FAKE_PROFILE_OAUTH2_TOKEN_SERVICE_H_ 129 #endif // CHROME_BROWSER_SIGNIN_FAKE_PROFILE_OAUTH2_TOKEN_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698