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

Side by Side Diff: chrome/browser/signin/android_profile_oauth2_token_service.cc

Issue 12647008: Refactor OAuth2TokenService to have profile- and device-based implementations. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase again Created 7 years, 8 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/signin/android_profile_oauth2_token_service.h"
6
7 #include "base/bind.h"
8 #include "chrome/browser/sync/profile_sync_service_android.h"
9 #include "content/public/browser/browser_thread.h"
10 #include "net/url_request/url_request_context_getter.h"
11
12 AndroidProfileOAuth2TokenService::AndroidProfileOAuth2TokenService(
13 net::URLRequestContextGetter* getter)
14 : ProfileOAuth2TokenService(getter) {
15 }
16
17 AndroidProfileOAuth2TokenService::~AndroidProfileOAuth2TokenService() {
18 }
19
20 scoped_ptr<OAuth2TokenService::Request>
21 AndroidProfileOAuth2TokenService::StartRequest(
22 const OAuth2TokenService::ScopeSet& scopes,
23 OAuth2TokenService::Consumer* consumer) {
24 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
25
26 if (HasCacheEntry(scopes))
27 return StartCacheLookupRequest(scopes, consumer);
28
29 scoped_ptr<RequestImpl> request(new RequestImpl(consumer));
30 DCHECK_EQ(scopes.size(), 1U);
31 std::vector<std::string> scope_list(scopes.begin(), scopes.end());
32 ProfileSyncServiceAndroid* sync_service =
33 ProfileSyncServiceAndroid::GetProfileSyncServiceAndroid();
34 sync_service->FetchOAuth2Token(
35 scope_list.front(),
36 base::Bind(&OAuth2TokenService::InformConsumer,
37 request->AsWeakPtr()));
38 return request.PassAs<Request>();
39 }
40
41 void AndroidProfileOAuth2TokenService::InvalidateToken(
42 const ScopeSet& scopes,
43 const std::string& invalid_token) {
44 OAuth2TokenService::InvalidateToken(scopes, invalid_token);
45
46 DCHECK_EQ(scopes.size(), 1U);
47 std::vector<std::string> scope_list(scopes.begin(), scopes.end());
48 ProfileSyncServiceAndroid* sync_service =
49 ProfileSyncServiceAndroid::GetProfileSyncServiceAndroid();
50 sync_service->InvalidateOAuth2Token(
51 scope_list.front(),
52 invalid_token);
53 }
54
55 bool AndroidProfileOAuth2TokenService::ShouldCacheForRefreshToken(
56 TokenService *token_service,
57 const std::string& refresh_token) {
58 // The parent class skips caching if the TokenService login token is stale,
59 // but on Android the user is always logged in to exactly one profile, so
60 // this concept doesn't exist and we can simply always cache.
61 return true;
62 }
OLDNEW
« no previous file with comments | « chrome/browser/signin/android_profile_oauth2_token_service.h ('k') | chrome/browser/signin/oauth2_token_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698