Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(387)

Side by Side Diff: remoting/client/jni/chromoting_jni_runtime.cc

Issue 319273003: Third Party Authentication for Android Part II - Java Native Interface plumbing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address Feedbacks Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « remoting/client/jni/chromoting_jni_runtime.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « remoting/client/jni/chromoting_jni_runtime.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698