Chromium Code Reviews| Index: components/copresence/copresence_manager.cc |
| diff --git a/components/copresence/copresence_manager.cc b/components/copresence/copresence_manager.cc |
| index fa89006376fd2d9f5e56f85bc3a6b6249aaf510f..3a4e73c9c9547f8d6a7dad4ef0b04528b07c09cc 100644 |
| --- a/components/copresence/copresence_manager.cc |
| +++ b/components/copresence/copresence_manager.cc |
| @@ -23,14 +23,17 @@ scoped_ptr<CopresenceManager> CopresenceManager::Create( |
| base::Unretained(manager), |
| "Copresence device registration")); |
| + // This callback will be canceled on manager's destruction, hence unretained |
| + // is safe to use here. |
| + manager->init_callback_.Reset( |
|
Daniel Erat
2014/08/28 21:32:41
i'm missing some background here, but what's the r
rkc
2014/08/28 21:51:50
This was written by Charlie while I was OOO. I am
Charlie
2014/10/17 22:18:10
This was in response to kalman@'s suggestion:
htt
|
| + base::Bind(&CopresenceManagerImpl::InitStepComplete, |
| + base::Unretained(manager), |
| + "Whispernet proxy initialization")); |
| + |
| manager->pending_init_operations_++; |
| DCHECK(delegate->GetWhispernetClient()); |
| delegate->GetWhispernetClient()->Initialize( |
| - base::Bind(&CopresenceManagerImpl::InitStepComplete, |
| - // We cannot cancel WhispernetClient initialization. |
| - // TODO(ckehoe): Get rid of this. |
| - manager->AsWeakPtr(), |
| - "Whispernet proxy initialization")); |
| + manager->init_callback_.callback()); |
| return make_scoped_ptr<CopresenceManager>(manager); |
| } |