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