| 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 f90b1dc02b222929b3e0851a1a240809064d7aa0..2fcc12ad6aea205c8a2c43443b3e4cbfd6fba498 100644
|
| --- a/blimp/client/core/blimp_client_context_impl.cc
|
| +++ b/blimp/client/core/blimp_client_context_impl.cc
|
| @@ -81,7 +81,22 @@ std::unique_ptr<BlimpContents> BlimpClientContextImpl::CreateBlimpContents() {
|
| return blimp_contents;
|
| }
|
|
|
| -void BlimpClientContextImpl::Connect(const std::string& client_auth_token) {
|
| +void BlimpClientContextImpl::Connect() {
|
| + // Lazy initialization of IdentitySource.
|
| + if (!identity_source_) {
|
| + identity_source_ = base::MakeUnique<IdentitySource>(delegate_);
|
| + identity_source_->SetTokenCallback(
|
| + base::Bind(&BlimpClientContextImpl::ConnectToAssignmentSource,
|
| + base::Unretained(this)));
|
| + }
|
| +
|
| + // Start Blimp authentication flow. The OAuth2 token will be used in
|
| + // assignment source.
|
| + identity_source_->Connect();
|
| +}
|
| +
|
| +void BlimpClientContextImpl::ConnectToAssignmentSource(
|
| + const std::string& client_auth_token) {
|
| if (!assignment_source_) {
|
| assignment_source_.reset(new AssignmentSource(
|
| GetAssignerURL(), io_thread_task_runner_, file_thread_task_runner_));
|
|
|