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

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

Issue 451973002: Capabilities + Extensions + Cast Host Extension Support for Android client (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor Fix Created 6 years, 4 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
« no previous file with comments | « remoting/client/jni/chromoting_jni_runtime.h ('k') | remoting/remoting.gyp » ('j') | 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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 } 70 }
71 71
72 static void Connect(JNIEnv* env, 72 static void Connect(JNIEnv* env,
73 jclass clazz, 73 jclass clazz,
74 jstring username, 74 jstring username,
75 jstring authToken, 75 jstring authToken,
76 jstring hostJid, 76 jstring hostJid,
77 jstring hostId, 77 jstring hostId,
78 jstring hostPubkey, 78 jstring hostPubkey,
79 jstring pairId, 79 jstring pairId,
80 jstring pairSecret) { 80 jstring pairSecret,
81 jstring capabilities) {
81 remoting::ChromotingJniRuntime::GetInstance()->ConnectToHost( 82 remoting::ChromotingJniRuntime::GetInstance()->ConnectToHost(
82 ConvertJavaStringToUTF8(env, username).c_str(), 83 ConvertJavaStringToUTF8(env, username).c_str(),
83 ConvertJavaStringToUTF8(env, authToken).c_str(), 84 ConvertJavaStringToUTF8(env, authToken).c_str(),
84 ConvertJavaStringToUTF8(env, hostJid).c_str(), 85 ConvertJavaStringToUTF8(env, hostJid).c_str(),
85 ConvertJavaStringToUTF8(env, hostId).c_str(), 86 ConvertJavaStringToUTF8(env, hostId).c_str(),
86 ConvertJavaStringToUTF8(env, hostPubkey).c_str(), 87 ConvertJavaStringToUTF8(env, hostPubkey).c_str(),
87 ConvertJavaStringToUTF8(env, pairId).c_str(), 88 ConvertJavaStringToUTF8(env, pairId).c_str(),
88 ConvertJavaStringToUTF8(env, pairSecret).c_str()); 89 ConvertJavaStringToUTF8(env, pairSecret).c_str(),
90 ConvertJavaStringToUTF8(env, capabilities).c_str());
89 } 91 }
90 92
91 static void Disconnect(JNIEnv* env, jclass clazz) { 93 static void Disconnect(JNIEnv* env, jclass clazz) {
92 remoting::ChromotingJniRuntime::GetInstance()->DisconnectFromHost(); 94 remoting::ChromotingJniRuntime::GetInstance()->DisconnectFromHost();
93 } 95 }
94 96
95 static void AuthenticationResponse(JNIEnv* env, 97 static void AuthenticationResponse(JNIEnv* env,
96 jclass clazz, 98 jclass clazz,
97 jstring pin, 99 jstring pin,
98 jboolean createPair, 100 jboolean createPair,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 jstring token, 151 jstring token,
150 jstring shared_secret) { 152 jstring shared_secret) {
151 ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance(); 153 ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance();
152 runtime->network_task_runner()->PostTask(FROM_HERE, base::Bind( 154 runtime->network_task_runner()->PostTask(FROM_HERE, base::Bind(
153 &ChromotingJniInstance::HandleOnThirdPartyTokenFetched, 155 &ChromotingJniInstance::HandleOnThirdPartyTokenFetched,
154 runtime->session(), 156 runtime->session(),
155 ConvertJavaStringToUTF8(env, token), 157 ConvertJavaStringToUTF8(env, token),
156 ConvertJavaStringToUTF8(env, shared_secret))); 158 ConvertJavaStringToUTF8(env, shared_secret)));
157 } 159 }
158 160
161 static void SendExtensionMessage(JNIEnv* env,
162 jclass clazz,
163 jstring type,
164 jstring data) {
165 remoting::ChromotingJniRuntime::GetInstance()->session()->SendClientMessage(
166 ConvertJavaStringToUTF8(env, type),
167 ConvertJavaStringToUTF8(env, data));
168 }
169
159 // ChromotingJniRuntime implementation. 170 // ChromotingJniRuntime implementation.
160 171
161 // static 172 // static
162 ChromotingJniRuntime* ChromotingJniRuntime::GetInstance() { 173 ChromotingJniRuntime* ChromotingJniRuntime::GetInstance() {
163 return Singleton<ChromotingJniRuntime>::get(); 174 return Singleton<ChromotingJniRuntime>::get();
164 } 175 }
165 176
166 ChromotingJniRuntime::ChromotingJniRuntime() { 177 ChromotingJniRuntime::ChromotingJniRuntime() {
167 at_exit_manager_.reset(new base::AtExitManager()); 178 at_exit_manager_.reset(new base::AtExitManager());
168 179
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 done_event.Wait(); 218 done_event.Wait();
208 base::android::DetachFromVM(); 219 base::android::DetachFromVM();
209 } 220 }
210 221
211 void ChromotingJniRuntime::ConnectToHost(const char* username, 222 void ChromotingJniRuntime::ConnectToHost(const char* username,
212 const char* auth_token, 223 const char* auth_token,
213 const char* host_jid, 224 const char* host_jid,
214 const char* host_id, 225 const char* host_id,
215 const char* host_pubkey, 226 const char* host_pubkey,
216 const char* pairing_id, 227 const char* pairing_id,
217 const char* pairing_secret) { 228 const char* pairing_secret,
229 const char* capabilities) {
218 DCHECK(ui_task_runner_->BelongsToCurrentThread()); 230 DCHECK(ui_task_runner_->BelongsToCurrentThread());
219 DCHECK(!session_); 231 DCHECK(!session_);
220 session_ = new ChromotingJniInstance(this, 232 session_ = new ChromotingJniInstance(this,
221 username, 233 username,
222 auth_token, 234 auth_token,
223 host_jid, 235 host_jid,
224 host_id, 236 host_id,
225 host_pubkey, 237 host_pubkey,
226 pairing_id, 238 pairing_id,
227 pairing_secret); 239 pairing_secret,
240 capabilities);
228 } 241 }
229 242
230 void ChromotingJniRuntime::DisconnectFromHost() { 243 void ChromotingJniRuntime::DisconnectFromHost() {
231 DCHECK(ui_task_runner_->BelongsToCurrentThread()); 244 DCHECK(ui_task_runner_->BelongsToCurrentThread());
232 if (session_) { 245 if (session_) {
233 session_->Disconnect(); 246 session_->Disconnect();
234 session_ = NULL; 247 session_ = NULL;
235 } 248 }
236 } 249 }
237 250
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 ScopedJavaLocalRef<jstring> j_url = 287 ScopedJavaLocalRef<jstring> j_url =
275 ConvertUTF8ToJavaString(env, token_url.spec()); 288 ConvertUTF8ToJavaString(env, token_url.spec());
276 ScopedJavaLocalRef<jstring> j_client_id = 289 ScopedJavaLocalRef<jstring> j_client_id =
277 ConvertUTF8ToJavaString(env, client_id); 290 ConvertUTF8ToJavaString(env, client_id);
278 ScopedJavaLocalRef<jstring> j_scope = ConvertUTF8ToJavaString(env, scope); 291 ScopedJavaLocalRef<jstring> j_scope = ConvertUTF8ToJavaString(env, scope);
279 292
280 Java_JniInterface_fetchThirdPartyToken( 293 Java_JniInterface_fetchThirdPartyToken(
281 env, j_url.obj(), j_client_id.obj(), j_scope.obj()); 294 env, j_url.obj(), j_client_id.obj(), j_scope.obj());
282 } 295 }
283 296
297 void ChromotingJniRuntime::SetCapabilities(const std::string& capabilities) {
298 DCHECK(ui_task_runner_->BelongsToCurrentThread());
299 JNIEnv* env = base::android::AttachCurrentThread();
300
301 ScopedJavaLocalRef<jstring> j_cap =
302 ConvertUTF8ToJavaString(env, capabilities);
303
304 Java_JniInterface_setCapabilities(env, j_cap.obj());
305 }
306
307 void ChromotingJniRuntime::HandleExtensionMessage(const std::string& type,
308 const std::string& message) {
309 DCHECK(ui_task_runner_->BelongsToCurrentThread());
310 JNIEnv* env = base::android::AttachCurrentThread();
311
312 ScopedJavaLocalRef<jstring> j_type = ConvertUTF8ToJavaString(env, type);
313 ScopedJavaLocalRef<jstring> j_message = ConvertUTF8ToJavaString(env, message);
314
315 Java_JniInterface_handleExtensionMessage(env, j_type.obj(), j_message.obj());
316 }
317
284 base::android::ScopedJavaLocalRef<jobject> ChromotingJniRuntime::NewBitmap( 318 base::android::ScopedJavaLocalRef<jobject> ChromotingJniRuntime::NewBitmap(
285 webrtc::DesktopSize size) { 319 webrtc::DesktopSize size) {
286 JNIEnv* env = base::android::AttachCurrentThread(); 320 JNIEnv* env = base::android::AttachCurrentThread();
287 return Java_JniInterface_newBitmap(env, size.width(), size.height()); 321 return Java_JniInterface_newBitmap(env, size.width(), size.height());
288 } 322 }
289 323
290 void ChromotingJniRuntime::UpdateFrameBitmap(jobject bitmap) { 324 void ChromotingJniRuntime::UpdateFrameBitmap(jobject bitmap) {
291 DCHECK(display_task_runner_->BelongsToCurrentThread()); 325 DCHECK(display_task_runner_->BelongsToCurrentThread());
292 326
293 JNIEnv* env = base::android::AttachCurrentThread(); 327 JNIEnv* env = base::android::AttachCurrentThread();
(...skipping 28 matching lines...) Expand all
322 356
323 JNIEnv* env = base::android::AttachCurrentThread(); 357 JNIEnv* env = base::android::AttachCurrentThread();
324 Java_JniInterface_redrawGraphicsInternal(env); 358 Java_JniInterface_redrawGraphicsInternal(env);
325 } 359 }
326 360
327 void ChromotingJniRuntime::DetachFromVmAndSignal(base::WaitableEvent* waiter) { 361 void ChromotingJniRuntime::DetachFromVmAndSignal(base::WaitableEvent* waiter) {
328 base::android::DetachFromVM(); 362 base::android::DetachFromVM();
329 waiter->Signal(); 363 waiter->Signal();
330 } 364 }
331 } // namespace remoting 365 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/jni/chromoting_jni_runtime.h ('k') | remoting/remoting.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698