| Index: blimp/client/app/android/blimp_client_session_android.cc
 | 
| diff --git a/blimp/client/app/android/blimp_client_session_android.cc b/blimp/client/app/android/blimp_client_session_android.cc
 | 
| index 97b8372cfbc3010c39fb73258dab747be58153fd..2ab42c5fc748efe08cd924f4d6f5ade032a58f13 100644
 | 
| --- a/blimp/client/app/android/blimp_client_session_android.cc
 | 
| +++ b/blimp/client/app/android/blimp_client_session_android.cc
 | 
| @@ -4,6 +4,8 @@
 | 
|  
 | 
|  #include "blimp/client/app/android/blimp_client_session_android.h"
 | 
|  
 | 
| +#include "base/android/jni_string.h"
 | 
| +#include "base/android/scoped_java_ref.h"
 | 
|  #include "base/thread_task_runner_handle.h"
 | 
|  #include "blimp/client/feature/tab_control_feature.h"
 | 
|  #include "blimp/client/session/assignment_source.h"
 | 
| @@ -16,10 +18,7 @@ const int kDummyTabId = 0;
 | 
|  }  // namespace
 | 
|  
 | 
|  static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& jobj) {
 | 
| -  scoped_ptr<AssignmentSource> assignment_source = make_scoped_ptr(
 | 
| -      new AssignmentSource(base::ThreadTaskRunnerHandle::Get()));
 | 
| -  return reinterpret_cast<intptr_t>(
 | 
| -      new BlimpClientSessionAndroid(env, jobj, std::move(assignment_source)));
 | 
| +  return reinterpret_cast<intptr_t>(new BlimpClientSessionAndroid(env, jobj));
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| @@ -37,9 +36,7 @@ BlimpClientSessionAndroid* BlimpClientSessionAndroid::FromJavaObject(
 | 
|  
 | 
|  BlimpClientSessionAndroid::BlimpClientSessionAndroid(
 | 
|      JNIEnv* env,
 | 
| -    const base::android::JavaParamRef<jobject>& jobj,
 | 
| -    scoped_ptr<AssignmentSource> assignment_source)
 | 
| -    : BlimpClientSession(std::move(assignment_source)) {
 | 
| +    const base::android::JavaParamRef<jobject>& jobj) {
 | 
|    java_obj_.Reset(env, jobj);
 | 
|  
 | 
|    // Create a single tab's WebContents.
 | 
| @@ -49,8 +46,15 @@ BlimpClientSessionAndroid::BlimpClientSessionAndroid(
 | 
|  
 | 
|  void BlimpClientSessionAndroid::Connect(
 | 
|      JNIEnv* env,
 | 
| -    const base::android::JavaParamRef<jobject>& jobj) {
 | 
| -  BlimpClientSession::Connect();
 | 
| +    const base::android::JavaParamRef<jobject>& jobj,
 | 
| +    const base::android::JavaParamRef<jstring>& jclient_auth_token) {
 | 
| +  std::string client_auth_token;
 | 
| +  if (jclient_auth_token.obj()) {
 | 
| +    client_auth_token =
 | 
| +        base::android::ConvertJavaStringToUTF8(env, jclient_auth_token);
 | 
| +  }
 | 
| +
 | 
| +  BlimpClientSession::Connect(client_auth_token);
 | 
|  }
 | 
|  
 | 
|  BlimpClientSessionAndroid::~BlimpClientSessionAndroid() {}
 | 
| @@ -60,5 +64,15 @@ void BlimpClientSessionAndroid::Destroy(JNIEnv* env,
 | 
|    delete this;
 | 
|  }
 | 
|  
 | 
| +void BlimpClientSessionAndroid::OnAssignmentConnectionAttempted(
 | 
| +    AssignmentSource::Result result) {
 | 
| +  // Notify the front end of the assignment result.
 | 
| +  JNIEnv* env = base::android::AttachCurrentThread();
 | 
| +  Java_BlimpClientSession_onAssignmentReceived(env, java_obj_.obj(),
 | 
| +                                               static_cast<jint>(result));
 | 
| +
 | 
| +  BlimpClientSession::OnAssignmentConnectionAttempted(result);
 | 
| +}
 | 
| +
 | 
|  }  // namespace client
 | 
|  }  // namespace blimp
 | 
| 
 |