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

Side by Side Diff: extensions/shell/browser/shell_oauth2_token_service.cc

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, 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "extensions/shell/browser/shell_oauth2_token_service.h" 5 #include "extensions/shell/browser/shell_oauth2_token_service.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/public/browser/browser_context.h" 8 #include "content/public/browser/browser_context.h"
9 #include "content/public/browser/browser_thread.h" 9 #include "content/public/browser/browser_thread.h"
10 #include "google_apis/gaia/oauth2_access_token_fetcher_impl.h" 10 #include "extensions/shell/browser/shell_oauth2_token_service_delegate.h"
11 11
12 namespace extensions { 12 namespace extensions {
13 namespace { 13 namespace {
14 14
15 ShellOAuth2TokenService* g_instance = nullptr; 15 ShellOAuth2TokenService* g_instance = nullptr;
16 16
17 } // namespace 17 } // namespace
18 18
19 ShellOAuth2TokenService::ShellOAuth2TokenService( 19 ShellOAuth2TokenService::ShellOAuth2TokenService(
20 content::BrowserContext* browser_context, 20 content::BrowserContext* browser_context,
21 std::string account_id, 21 std::string account_id,
22 std::string refresh_token) 22 std::string refresh_token)
23 : browser_context_(browser_context), 23 : OAuth2TokenService(new ShellOAuth2TokenServiceDelegate(browser_context,
24 account_id_(account_id), 24 account_id,
25 refresh_token_(refresh_token) { 25 refresh_token)) {
26 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 26 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
27 DCHECK(!g_instance); 27 DCHECK(!g_instance);
28 g_instance = this; 28 g_instance = this;
29 } 29 }
30 30
31 ShellOAuth2TokenService::~ShellOAuth2TokenService() { 31 ShellOAuth2TokenService::~ShellOAuth2TokenService() {
32 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 32 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
33 DCHECK(g_instance); 33 DCHECK(g_instance);
34 g_instance = nullptr; 34 g_instance = nullptr;
35 } 35 }
36 36
37 // static 37 // static
38 ShellOAuth2TokenService* ShellOAuth2TokenService::GetInstance() { 38 ShellOAuth2TokenService* ShellOAuth2TokenService::GetInstance() {
39 DCHECK(g_instance); 39 DCHECK(g_instance);
40 return g_instance; 40 return g_instance;
41 } 41 }
42 42
43 void ShellOAuth2TokenService::SetRefreshToken( 43 void ShellOAuth2TokenService::SetRefreshToken(
44 const std::string& account_id, 44 const std::string& account_id,
45 const std::string& refresh_token) { 45 const std::string& refresh_token) {
46 account_id_ = account_id; 46 GetDelegate()->UpdateCredentials(account_id, refresh_token);
47 refresh_token_ = refresh_token;
48 } 47 }
49 48
50 bool ShellOAuth2TokenService::RefreshTokenIsAvailable( 49 std::string ShellOAuth2TokenService::AccountId() const {
51 const std::string& account_id) const { 50 return GetAccounts()[0];
52 if (account_id != account_id_)
53 return false;
54
55 return !refresh_token_.empty();
56 }
57
58 OAuth2AccessTokenFetcher* ShellOAuth2TokenService::CreateAccessTokenFetcher(
59 const std::string& account_id,
60 net::URLRequestContextGetter* getter,
61 OAuth2AccessTokenConsumer* consumer) {
62 DCHECK(!refresh_token_.empty());
63 return new OAuth2AccessTokenFetcherImpl(consumer, getter, refresh_token_);
64 }
65
66 net::URLRequestContextGetter* ShellOAuth2TokenService::GetRequestContext() {
67 return browser_context_->GetRequestContext();
68 } 51 }
69 52
70 } // namespace extensions 53 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/shell/browser/shell_oauth2_token_service.h ('k') | extensions/shell/browser/shell_oauth2_token_service_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698