Chromium Code Reviews| 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..5edc974896b258795729e92e7268f7d29ff8a28e 100644 |
| --- a/blimp/client/app/android/blimp_client_session_android.cc |
| +++ b/blimp/client/app/android/blimp_client_session_android.cc |
| @@ -4,6 +4,7 @@ |
| #include "blimp/client/app/android/blimp_client_session_android.h" |
| +#include "base/android/jni_string.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 +17,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 +35,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 +45,13 @@ 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>& jtoken) { |
| + std::string token; |
| + if (jtoken.obj()) |
| + token = base::android::ConvertJavaStringToUTF8(env, jtoken); |
| + |
| + BlimpClientSession::Connect(token); |
| } |
| BlimpClientSessionAndroid::~BlimpClientSessionAndroid() {} |
| @@ -60,5 +61,16 @@ void BlimpClientSessionAndroid::Destroy(JNIEnv* env, |
| delete this; |
| } |
| +void BlimpClientSessionAndroid::ConnectWithAssignment( |
|
Kevin M
2016/02/12 19:45:26
I think that subclassing this method obfuscates th
David Trainor- moved to gerrit
2016/02/17 21:09:47
Good point. Done :).
|
| + AssignmentSourceResult result, |
| + const Assignment& assignment) { |
| + // 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::ConnectWithAssignment(result, assignment); |
| +} |
| + |
| } // namespace client |
| } // namespace blimp |