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 |