| 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(
|
| + 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);
|
| }
|
|
|