Index: remoting/client/jni/chromoting_jni_runtime.cc |
diff --git a/remoting/client/jni/chromoting_jni_runtime.cc b/remoting/client/jni/chromoting_jni_runtime.cc |
index 8384d679994407fd4c825ff4c718e740c0e93d24..cc84d4e7918ccb5193c22544fe3d5c1a35721645 100644 |
--- a/remoting/client/jni/chromoting_jni_runtime.cc |
+++ b/remoting/client/jni/chromoting_jni_runtime.cc |
@@ -144,6 +144,18 @@ static void SendTextEvent(JNIEnv* env, |
ConvertJavaStringToUTF8(env, text)); |
} |
+static void OnThirdPartyTokenFetched(JNIEnv* env, |
+ jclass clazz, |
+ jstring token, |
+ jstring shared_secret) { |
+ ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance(); |
+ runtime->network_task_runner()->PostTask(FROM_HERE, base::Bind( |
+ &ChromotingJniInstance::HandleOnThirdPartyTokenFetched, |
+ runtime->session(), |
+ ConvertJavaStringToUTF8(env, token), |
+ ConvertJavaStringToUTF8(env, shared_secret))); |
+} |
+ |
// ChromotingJniRuntime implementation. |
// static |
@@ -255,6 +267,22 @@ void ChromotingJniRuntime::CommitPairingCredentials(const std::string& host, |
env, j_host.obj(), j_id.obj(), j_secret.obj()); |
} |
+void ChromotingJniRuntime::FetchThirdPartyToken(const GURL& token_url, |
+ const std::string& client_id, |
+ const std::string& scope) { |
+ DCHECK(ui_task_runner_->BelongsToCurrentThread()); |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ |
+ ScopedJavaLocalRef<jstring> j_url = |
+ ConvertUTF8ToJavaString(env, token_url.spec()); |
+ ScopedJavaLocalRef<jstring> j_client_id = |
+ ConvertUTF8ToJavaString(env, client_id); |
+ ScopedJavaLocalRef<jstring> j_scope = ConvertUTF8ToJavaString(env, scope); |
+ |
+ Java_JniInterface_fetchThirdPartyToken( |
+ env, j_url.obj(), j_client_id.obj(), j_scope.obj()); |
+} |
+ |
base::android::ScopedJavaLocalRef<jobject> ChromotingJniRuntime::NewBitmap( |
webrtc::DesktopSize size) { |
JNIEnv* env = base::android::AttachCurrentThread(); |
@@ -302,5 +330,4 @@ void ChromotingJniRuntime::DetachFromVmAndSignal(base::WaitableEvent* waiter) { |
base::android::DetachFromVM(); |
waiter->Signal(); |
} |
- |
} // namespace remoting |