| Index: blimp/client/core/blimp_client_context_impl.cc | 
| diff --git a/blimp/client/core/blimp_client_context_impl.cc b/blimp/client/core/blimp_client_context_impl.cc | 
| index 4ebebde648c30cfb8a3c03536604343eb4b982d8..51b314f2a4c21a843f1dca1610d8914870951179 100644 | 
| --- a/blimp/client/core/blimp_client_context_impl.cc | 
| +++ b/blimp/client/core/blimp_client_context_impl.cc | 
| @@ -93,17 +93,16 @@ std::unique_ptr<BlimpContents> BlimpClientContextImpl::CreateBlimpContents() { | 
| } | 
|  | 
| void BlimpClientContextImpl::Connect() { | 
| -  // Lazy initialization of IdentitySource. | 
| -  if (!identity_source_) { | 
| -    identity_source_ = base::MakeUnique<IdentitySource>( | 
| -        delegate_, | 
| -        base::Bind(&BlimpClientContextImpl::ConnectToAssignmentSource, | 
| -                   base::Unretained(this))); | 
| -  } | 
| - | 
| // Start Blimp authentication flow. The OAuth2 token will be used in | 
| // assignment source. | 
| -  identity_source_->Connect(); | 
| +  GetIdentitySource()->Connect(); | 
| +} | 
| + | 
| +IdentitySource* BlimpClientContextImpl::GetIdentitySource() { | 
| +  if (!identity_source_) { | 
| +    CreateIdentitySource(); | 
| +  } | 
| +  return identity_source_.get(); | 
| } | 
|  | 
| void BlimpClientContextImpl::ConnectToAssignmentSource( | 
| @@ -165,5 +164,11 @@ void BlimpClientContextImpl::RegisterFeatures() { | 
| tab_control_feature_.get())); | 
| } | 
|  | 
| +void BlimpClientContextImpl::CreateIdentitySource() { | 
| +  identity_source_ = base::MakeUnique<IdentitySource>( | 
| +      delegate_, base::Bind(&BlimpClientContextImpl::ConnectToAssignmentSource, | 
| +                            base::Unretained(this))); | 
| +} | 
| + | 
| }  // namespace client | 
| }  // namespace blimp | 
|  |