Chromium Code Reviews| Index: components/copresence/rpc/rpc_handler.cc |
| diff --git a/components/copresence/rpc/rpc_handler.cc b/components/copresence/rpc/rpc_handler.cc |
| index 07b28a423882a798646e2b883bae6f95fe36ac2b..29ca66cf85a81e5c6a7308a8dfbd5de73aa489c7 100644 |
| --- a/components/copresence/rpc/rpc_handler.cc |
| +++ b/components/copresence/rpc/rpc_handler.cc |
| @@ -153,16 +153,21 @@ void AddTokenToRequest(const AudioToken& token, ReportRequest* request) { |
| // Public methods |
| RpcHandler::RpcHandler(CopresenceDelegate* delegate, |
| - DirectiveHandler* directive_handler) |
| + DirectiveHandler* directive_handler, |
| + const PostCallback& server_post_callback) |
| : delegate_(delegate), |
| directive_handler_(directive_handler), |
| invalid_audio_token_cache_( |
| base::TimeDelta::FromMilliseconds(kInvalidTokenExpiryTimeMs), |
| kMaxInvalidTokens), |
| - server_post_callback_(base::Bind(&RpcHandler::SendHttpPost, |
| - base::Unretained(this))) { |
| + server_post_callback_(server_post_callback) { |
| DCHECK(delegate_); |
| DCHECK(directive_handler_); |
| + |
| + if (server_post_callback_.is_null()) { |
| + server_post_callback_ = |
| + base::Bind(&RpcHandler::SendHttpPost, base::Unretained(this)); |
| + } |
| } |
| RpcHandler::~RpcHandler() { |
| @@ -170,13 +175,11 @@ RpcHandler::~RpcHandler() { |
| delete post; |
| } |
| - if (delegate_->GetWhispernetClient()) { |
| - // TODO(ckehoe): Use CancelableCallbacks instead. |
| - delegate_->GetWhispernetClient()->RegisterTokensCallback( |
| - WhispernetClient::TokensCallback()); |
| - delegate_->GetWhispernetClient()->RegisterSamplesCallback( |
| - WhispernetClient::SamplesCallback()); |
| - } |
| + // TODO(ckehoe): Use CancelableCallbacks instead. |
|
rkc
2014/11/04 19:35:27
We don't want to use CancelableCallbacks here. The
Charlie
2014/11/04 19:57:04
Ok. But I still do not like registering them in on
|
| + delegate_->GetWhispernetClient()->RegisterTokensCallback( |
| + WhispernetClient::TokensCallback()); |
| + delegate_->GetWhispernetClient()->RegisterSamplesCallback( |
| + WhispernetClient::SamplesCallback()); |
| } |
| void RpcHandler::RegisterForToken(const std::string& auth_token, |