Chromium Code Reviews| Index: google_apis/gaia/oauth2_token_service_request.cc |
| diff --git a/google_apis/gaia/oauth2_token_service_request.cc b/google_apis/gaia/oauth2_token_service_request.cc |
| index 672015241779a45d4e8f1dea882947d0844c3011..b652c2b26c1e5f75798a96ed9e6481852d80e4ec 100644 |
| --- a/google_apis/gaia/oauth2_token_service_request.cc |
| +++ b/google_apis/gaia/oauth2_token_service_request.cc |
| @@ -40,7 +40,8 @@ class OAuth2TokenServiceRequest::Core |
| public: |
| // Note the thread where an instance of Core is constructed is referred to as |
| // the "owner thread" here. |
| - Core(OAuth2TokenServiceRequest* owner, TokenServiceProvider* provider); |
| + Core(OAuth2TokenServiceRequest* owner, |
| + const scoped_refptr<TokenServiceProvider>& provider); |
| // Starts the core. Must be called on the owner thread. |
| void Start(); |
| @@ -75,12 +76,17 @@ class OAuth2TokenServiceRequest::Core |
| scoped_refptr<base::SingleThreadTaskRunner> token_service_task_runner_; |
| OAuth2TokenServiceRequest* owner_; |
| - TokenServiceProvider* provider_; |
| + |
| + // It is important that provider_ is destroyed on the owner thread, not the |
|
blundell
2014/08/13 06:58:05
This comment is puzzling. Since |provider_| is a r
maniscalco
2014/08/13 16:13:03
You're right, this comment is incorrect. The clas
|
| + // token_service_task_runner_ thread. |
| + scoped_refptr<TokenServiceProvider> provider_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(Core); |
| }; |
| -OAuth2TokenServiceRequest::Core::Core(OAuth2TokenServiceRequest* owner, |
| - TokenServiceProvider* provider) |
| +OAuth2TokenServiceRequest::Core::Core( |
| + OAuth2TokenServiceRequest* owner, |
| + const scoped_refptr<TokenServiceProvider>& provider) |
| : owner_(owner), provider_(provider) { |
| DCHECK(owner_); |
| DCHECK(provider_); |
| @@ -149,7 +155,8 @@ class RequestCore : public OAuth2TokenServiceRequest::Core, |
| public OAuth2TokenService::Consumer { |
| public: |
| RequestCore(OAuth2TokenServiceRequest* owner, |
| - OAuth2TokenServiceRequest::TokenServiceProvider* provider, |
| + const scoped_refptr< |
| + OAuth2TokenServiceRequest::TokenServiceProvider>& provider, |
| OAuth2TokenService::Consumer* consumer, |
| const std::string& account_id, |
| const OAuth2TokenService::ScopeSet& scopes); |
| @@ -189,7 +196,8 @@ class RequestCore : public OAuth2TokenServiceRequest::Core, |
| RequestCore::RequestCore( |
| OAuth2TokenServiceRequest* owner, |
| - OAuth2TokenServiceRequest::TokenServiceProvider* provider, |
| + const scoped_refptr<OAuth2TokenServiceRequest::TokenServiceProvider>& |
| + provider, |
| OAuth2TokenService::Consumer* consumer, |
| const std::string& account_id, |
| const OAuth2TokenService::ScopeSet& scopes) |
| @@ -260,7 +268,8 @@ void RequestCore::InformOwnerOnGetTokenFailure(GoogleServiceAuthError error) { |
| class InvalidateCore : public OAuth2TokenServiceRequest::Core { |
| public: |
| InvalidateCore(OAuth2TokenServiceRequest* owner, |
| - OAuth2TokenServiceRequest::TokenServiceProvider* provider, |
| + const scoped_refptr< |
| + OAuth2TokenServiceRequest::TokenServiceProvider>& provider, |
| const std::string& access_token, |
| const std::string& account_id, |
| const OAuth2TokenService::ScopeSet& scopes); |
| @@ -284,7 +293,8 @@ class InvalidateCore : public OAuth2TokenServiceRequest::Core { |
| InvalidateCore::InvalidateCore( |
| OAuth2TokenServiceRequest* owner, |
| - OAuth2TokenServiceRequest::TokenServiceProvider* provider, |
| + const scoped_refptr<OAuth2TokenServiceRequest::TokenServiceProvider>& |
| + provider, |
| const std::string& access_token, |
| const std::string& account_id, |
| const OAuth2TokenService::ScopeSet& scopes) |
| @@ -314,7 +324,7 @@ void InvalidateCore::StopOnTokenServiceThread() { |
| // static |
| scoped_ptr<OAuth2TokenServiceRequest> OAuth2TokenServiceRequest::CreateAndStart( |
| - TokenServiceProvider* provider, |
| + const scoped_refptr<TokenServiceProvider>& provider, |
| const std::string& account_id, |
| const OAuth2TokenService::ScopeSet& scopes, |
| OAuth2TokenService::Consumer* consumer) { |
| @@ -328,7 +338,7 @@ scoped_ptr<OAuth2TokenServiceRequest> OAuth2TokenServiceRequest::CreateAndStart( |
| // static |
| void OAuth2TokenServiceRequest::InvalidateToken( |
| - OAuth2TokenServiceRequest::TokenServiceProvider* provider, |
| + const scoped_refptr<TokenServiceProvider>& provider, |
| const std::string& account_id, |
| const OAuth2TokenService::ScopeSet& scopes, |
| const std::string& access_token) { |