OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "remoting/client/jni/chromoting_jni_runtime.h" | 5 #include "remoting/client/jni/chromoting_jni_runtime.h" |
6 | 6 |
7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
8 #include "base/android/jni_array.h" | 8 #include "base/android/jni_array.h" |
9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
10 #include "base/android/scoped_java_ref.h" | 10 #include "base/android/scoped_java_ref.h" |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 keyCode, keyDown); | 137 keyCode, keyDown); |
138 } | 138 } |
139 | 139 |
140 static void SendTextEvent(JNIEnv* env, | 140 static void SendTextEvent(JNIEnv* env, |
141 jclass clazz, | 141 jclass clazz, |
142 jstring text) { | 142 jstring text) { |
143 remoting::ChromotingJniRuntime::GetInstance()->session()->SendTextEvent( | 143 remoting::ChromotingJniRuntime::GetInstance()->session()->SendTextEvent( |
144 ConvertJavaStringToUTF8(env, text)); | 144 ConvertJavaStringToUTF8(env, text)); |
145 } | 145 } |
146 | 146 |
| 147 static void OnThirdPartyTokenFetched(JNIEnv* env, |
| 148 jclass clazz, |
| 149 jstring token, |
| 150 jstring shared_secret) { |
| 151 ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance(); |
| 152 runtime->network_task_runner()->PostTask(FROM_HERE, base::Bind( |
| 153 &ChromotingJniInstance::HandleOnThirdPartyTokenFetched, |
| 154 runtime->session(), |
| 155 ConvertJavaStringToUTF8(env, token), |
| 156 ConvertJavaStringToUTF8(env, shared_secret))); |
| 157 } |
| 158 |
147 // ChromotingJniRuntime implementation. | 159 // ChromotingJniRuntime implementation. |
148 | 160 |
149 // static | 161 // static |
150 ChromotingJniRuntime* ChromotingJniRuntime::GetInstance() { | 162 ChromotingJniRuntime* ChromotingJniRuntime::GetInstance() { |
151 return Singleton<ChromotingJniRuntime>::get(); | 163 return Singleton<ChromotingJniRuntime>::get(); |
152 } | 164 } |
153 | 165 |
154 ChromotingJniRuntime::ChromotingJniRuntime() { | 166 ChromotingJniRuntime::ChromotingJniRuntime() { |
155 at_exit_manager_.reset(new base::AtExitManager()); | 167 at_exit_manager_.reset(new base::AtExitManager()); |
156 | 168 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 ScopedJavaLocalRef<jstring> j_host = ConvertUTF8ToJavaString(env, host); | 260 ScopedJavaLocalRef<jstring> j_host = ConvertUTF8ToJavaString(env, host); |
249 ScopedJavaLocalRef<jbyteArray> j_id = ToJavaByteArray( | 261 ScopedJavaLocalRef<jbyteArray> j_id = ToJavaByteArray( |
250 env, reinterpret_cast<const uint8*>(id.data()), id.size()); | 262 env, reinterpret_cast<const uint8*>(id.data()), id.size()); |
251 ScopedJavaLocalRef<jbyteArray> j_secret = ToJavaByteArray( | 263 ScopedJavaLocalRef<jbyteArray> j_secret = ToJavaByteArray( |
252 env, reinterpret_cast<const uint8*>(secret.data()), secret.size()); | 264 env, reinterpret_cast<const uint8*>(secret.data()), secret.size()); |
253 | 265 |
254 Java_JniInterface_commitPairingCredentials( | 266 Java_JniInterface_commitPairingCredentials( |
255 env, j_host.obj(), j_id.obj(), j_secret.obj()); | 267 env, j_host.obj(), j_id.obj(), j_secret.obj()); |
256 } | 268 } |
257 | 269 |
| 270 void ChromotingJniRuntime::FetchThirdPartyToken(const GURL& token_url, |
| 271 const std::string& client_id, |
| 272 const std::string& scope) { |
| 273 DCHECK(ui_task_runner_->BelongsToCurrentThread()); |
| 274 JNIEnv* env = base::android::AttachCurrentThread(); |
| 275 |
| 276 ScopedJavaLocalRef<jstring> j_url = |
| 277 ConvertUTF8ToJavaString(env, token_url.spec()); |
| 278 ScopedJavaLocalRef<jstring> j_client_id = |
| 279 ConvertUTF8ToJavaString(env, client_id); |
| 280 ScopedJavaLocalRef<jstring> j_scope = ConvertUTF8ToJavaString(env, scope); |
| 281 |
| 282 Java_JniInterface_fetchThirdPartyToken( |
| 283 env, j_url.obj(), j_client_id.obj(), j_scope.obj()); |
| 284 } |
| 285 |
258 base::android::ScopedJavaLocalRef<jobject> ChromotingJniRuntime::NewBitmap( | 286 base::android::ScopedJavaLocalRef<jobject> ChromotingJniRuntime::NewBitmap( |
259 webrtc::DesktopSize size) { | 287 webrtc::DesktopSize size) { |
260 JNIEnv* env = base::android::AttachCurrentThread(); | 288 JNIEnv* env = base::android::AttachCurrentThread(); |
261 return Java_JniInterface_newBitmap(env, size.width(), size.height()); | 289 return Java_JniInterface_newBitmap(env, size.width(), size.height()); |
262 } | 290 } |
263 | 291 |
264 void ChromotingJniRuntime::UpdateFrameBitmap(jobject bitmap) { | 292 void ChromotingJniRuntime::UpdateFrameBitmap(jobject bitmap) { |
265 DCHECK(display_task_runner_->BelongsToCurrentThread()); | 293 DCHECK(display_task_runner_->BelongsToCurrentThread()); |
266 | 294 |
267 JNIEnv* env = base::android::AttachCurrentThread(); | 295 JNIEnv* env = base::android::AttachCurrentThread(); |
(...skipping 27 matching lines...) Expand all Loading... |
295 DCHECK(display_task_runner_->BelongsToCurrentThread()); | 323 DCHECK(display_task_runner_->BelongsToCurrentThread()); |
296 | 324 |
297 JNIEnv* env = base::android::AttachCurrentThread(); | 325 JNIEnv* env = base::android::AttachCurrentThread(); |
298 Java_JniInterface_redrawGraphicsInternal(env); | 326 Java_JniInterface_redrawGraphicsInternal(env); |
299 } | 327 } |
300 | 328 |
301 void ChromotingJniRuntime::DetachFromVmAndSignal(base::WaitableEvent* waiter) { | 329 void ChromotingJniRuntime::DetachFromVmAndSignal(base::WaitableEvent* waiter) { |
302 base::android::DetachFromVM(); | 330 base::android::DetachFromVM(); |
303 waiter->Signal(); | 331 waiter->Signal(); |
304 } | 332 } |
305 | |
306 } // namespace remoting | 333 } // namespace remoting |
OLD | NEW |