Chromium Code Reviews| Index: blimp/client/core/context/blimp_client_context_impl.cc |
| diff --git a/blimp/client/core/context/blimp_client_context_impl.cc b/blimp/client/core/context/blimp_client_context_impl.cc |
| index 81769e53483afa6bf70bf0211f742a2be050e0bc..7ac95eebc6e7fb13991990a010cba7dc420fdf63 100644 |
| --- a/blimp/client/core/context/blimp_client_context_impl.cc |
| +++ b/blimp/client/core/context/blimp_client_context_impl.cc |
| @@ -149,6 +149,17 @@ BlimpClientContextImpl::~BlimpClientContextImpl() { |
| void BlimpClientContextImpl::SetDelegate(BlimpClientContextDelegate* delegate) { |
|
Khushal
2016/11/03 00:13:35
This is being called with a null delegate from its
nyquist
2016/11/03 00:21:40
This makes sense to me.
xingliu
2016/11/03 00:33:31
Sorry I didn't notice in dtor it sets to nullptr.
Khushal
2016/11/03 00:50:48
I just looked at that class, and yes, it does look
xingliu
2016/11/03 01:45:37
Yeah, that's probably the right way to do that :)
|
| delegate_ = delegate; |
| + |
| + // |assignment_fetcher_| needs services from BlimpClientContextDelegate, so |
| + // it can't be created in the constructor. |
| + DCHECK(delegate_); |
| + assignment_fetcher_ = base::MakeUnique<AssignmentFetcher>( |
| + io_thread_task_runner_, file_thread_task_runner_, |
| + delegate_->CreateIdentityProvider(), GetAssignerURL(), |
| + base::Bind(&BlimpClientContextImpl::OnAssignmentReceived, |
| + weak_factory_.GetWeakPtr()), |
| + base::Bind(&BlimpClientContextDelegate::OnAuthenticationError, |
| + base::Unretained(delegate_))); |
| } |
| std::unique_ptr<BlimpContents> BlimpClientContextImpl::CreateBlimpContents( |
| @@ -161,15 +172,7 @@ std::unique_ptr<BlimpContents> BlimpClientContextImpl::CreateBlimpContents( |
| } |
| void BlimpClientContextImpl::Connect() { |
| - if (!assignment_fetcher_) { |
| - assignment_fetcher_ = base::MakeUnique<AssignmentFetcher>( |
| - io_thread_task_runner_, file_thread_task_runner_, |
| - delegate_->CreateIdentityProvider(), GetAssignerURL(), |
| - base::Bind(&BlimpClientContextImpl::OnAssignmentReceived, |
| - weak_factory_.GetWeakPtr()), |
| - base::Bind(&BlimpClientContextDelegate::OnAuthenticationError, |
| - base::Unretained(delegate_))); |
| - } |
| + DCHECK(assignment_fetcher_); |
| assignment_fetcher_->Fetch(); |
| } |
| @@ -187,6 +190,7 @@ BlimpClientContextImpl::CreateFeedbackData() { |
| } |
| IdentitySource* BlimpClientContextImpl::GetIdentitySource() { |
| + DCHECK(assignment_fetcher_); |
| return assignment_fetcher_->GetIdentitySource(); |
| } |