| 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
|
|
|