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

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

Issue 1312153003: jni_generator: Pass object parameters as JavaParamRef. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 3 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
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/library_loader/library_loader_hooks.h" 10 #include "base/android/library_loader/library_loader_hooks.h"
(...skipping 19 matching lines...) Expand all
30 30
31 namespace remoting { 31 namespace remoting {
32 32
33 bool RegisterChromotingJniRuntime(JNIEnv* env) { 33 bool RegisterChromotingJniRuntime(JNIEnv* env) {
34 return remoting::RegisterNativesImpl(env); 34 return remoting::RegisterNativesImpl(env);
35 } 35 }
36 36
37 // Implementation of stubs defined in JniInterface_jni.h. These are the entry 37 // Implementation of stubs defined in JniInterface_jni.h. These are the entry
38 // points for JNI calls from Java into C++. 38 // points for JNI calls from Java into C++.
39 39
40 static void LoadNative(JNIEnv* env, jclass clazz, jobject context) { 40 static void LoadNative(JNIEnv* env,
41 const JavaParamRef<jclass>& clazz,
42 const JavaParamRef<jobject>& context) {
41 base::android::ScopedJavaLocalRef<jobject> context_activity(env, context); 43 base::android::ScopedJavaLocalRef<jobject> context_activity(env, context);
42 base::android::InitApplicationContext(env, context_activity); 44 base::android::InitApplicationContext(env, context_activity);
43 45
44 // The google_apis functions check the command-line arguments to make sure no 46 // The google_apis functions check the command-line arguments to make sure no
45 // runtime API keys have been specified by the environment. Unfortunately, we 47 // runtime API keys have been specified by the environment. Unfortunately, we
46 // neither launch Chromium nor have a command line, so we need to prevent 48 // neither launch Chromium nor have a command line, so we need to prevent
47 // them from DCHECKing out when they go looking. 49 // them from DCHECKing out when they go looking.
48 base::CommandLine::Init(0, nullptr); 50 base::CommandLine::Init(0, nullptr);
49 51
50 // Create the singleton now so that the Chromoting threads will be set up. 52 // Create the singleton now so that the Chromoting threads will be set up.
51 remoting::ChromotingJniRuntime::GetInstance(); 53 remoting::ChromotingJniRuntime::GetInstance();
52 } 54 }
53 55
54 static ScopedJavaLocalRef<jstring> GetApiKey(JNIEnv* env, jclass clazz) { 56 static ScopedJavaLocalRef<jstring> GetApiKey(
57 JNIEnv* env,
58 const JavaParamRef<jclass>& clazz) {
55 return ConvertUTF8ToJavaString(env, google_apis::GetAPIKey().c_str()); 59 return ConvertUTF8ToJavaString(env, google_apis::GetAPIKey().c_str());
56 } 60 }
57 61
58 static ScopedJavaLocalRef<jstring> GetClientId(JNIEnv* env, jclass clazz) { 62 static ScopedJavaLocalRef<jstring> GetClientId(
63 JNIEnv* env,
64 const JavaParamRef<jclass>& clazz) {
59 return ConvertUTF8ToJavaString( 65 return ConvertUTF8ToJavaString(
60 env, 66 env,
61 google_apis::GetOAuth2ClientID(google_apis::CLIENT_REMOTING).c_str()); 67 google_apis::GetOAuth2ClientID(google_apis::CLIENT_REMOTING).c_str());
62 } 68 }
63 69
64 static ScopedJavaLocalRef<jstring> GetClientSecret(JNIEnv* env, jclass clazz) { 70 static ScopedJavaLocalRef<jstring> GetClientSecret(
71 JNIEnv* env,
72 const JavaParamRef<jclass>& clazz) {
65 return ConvertUTF8ToJavaString( 73 return ConvertUTF8ToJavaString(
66 env, 74 env,
67 google_apis::GetOAuth2ClientSecret(google_apis::CLIENT_REMOTING).c_str()); 75 google_apis::GetOAuth2ClientSecret(google_apis::CLIENT_REMOTING).c_str());
68 } 76 }
69 77
70 static void Connect(JNIEnv* env, 78 static void Connect(JNIEnv* env,
71 jclass clazz, 79 const JavaParamRef<jclass>& clazz,
72 jstring username, 80 const JavaParamRef<jstring>& username,
73 jstring authToken, 81 const JavaParamRef<jstring>& authToken,
74 jstring hostJid, 82 const JavaParamRef<jstring>& hostJid,
75 jstring hostId, 83 const JavaParamRef<jstring>& hostId,
76 jstring hostPubkey, 84 const JavaParamRef<jstring>& hostPubkey,
77 jstring pairId, 85 const JavaParamRef<jstring>& pairId,
78 jstring pairSecret, 86 const JavaParamRef<jstring>& pairSecret,
79 jstring capabilities) { 87 const JavaParamRef<jstring>& capabilities) {
80 remoting::ChromotingJniRuntime::GetInstance()->ConnectToHost( 88 remoting::ChromotingJniRuntime::GetInstance()->ConnectToHost(
81 ConvertJavaStringToUTF8(env, username).c_str(), 89 ConvertJavaStringToUTF8(env, username).c_str(),
82 ConvertJavaStringToUTF8(env, authToken).c_str(), 90 ConvertJavaStringToUTF8(env, authToken).c_str(),
83 ConvertJavaStringToUTF8(env, hostJid).c_str(), 91 ConvertJavaStringToUTF8(env, hostJid).c_str(),
84 ConvertJavaStringToUTF8(env, hostId).c_str(), 92 ConvertJavaStringToUTF8(env, hostId).c_str(),
85 ConvertJavaStringToUTF8(env, hostPubkey).c_str(), 93 ConvertJavaStringToUTF8(env, hostPubkey).c_str(),
86 ConvertJavaStringToUTF8(env, pairId).c_str(), 94 ConvertJavaStringToUTF8(env, pairId).c_str(),
87 ConvertJavaStringToUTF8(env, pairSecret).c_str(), 95 ConvertJavaStringToUTF8(env, pairSecret).c_str(),
88 ConvertJavaStringToUTF8(env, capabilities).c_str()); 96 ConvertJavaStringToUTF8(env, capabilities).c_str());
89 } 97 }
90 98
91 static void Disconnect(JNIEnv* env, jclass clazz) { 99 static void Disconnect(JNIEnv* env, const JavaParamRef<jclass>& clazz) {
92 remoting::ChromotingJniRuntime::GetInstance()->DisconnectFromHost(); 100 remoting::ChromotingJniRuntime::GetInstance()->DisconnectFromHost();
93 } 101 }
94 102
95 static void AuthenticationResponse(JNIEnv* env, 103 static void AuthenticationResponse(JNIEnv* env,
96 jclass clazz, 104 const JavaParamRef<jclass>& clazz,
97 jstring pin, 105 const JavaParamRef<jstring>& pin,
98 jboolean createPair, 106 jboolean createPair,
99 jstring deviceName) { 107 const JavaParamRef<jstring>& deviceName) {
100 remoting::ChromotingJniRuntime::GetInstance()->session()->ProvideSecret( 108 remoting::ChromotingJniRuntime::GetInstance()->session()->ProvideSecret(
101 ConvertJavaStringToUTF8(env, pin).c_str(), createPair, 109 ConvertJavaStringToUTF8(env, pin).c_str(), createPair,
102 ConvertJavaStringToUTF8(env, deviceName)); 110 ConvertJavaStringToUTF8(env, deviceName));
103 } 111 }
104 112
105 static void ScheduleRedraw(JNIEnv* env, jclass clazz) { 113 static void ScheduleRedraw(JNIEnv* env, const JavaParamRef<jclass>& clazz) {
106 remoting::ChromotingJniRuntime::GetInstance()->session()->RedrawDesktop(); 114 remoting::ChromotingJniRuntime::GetInstance()->session()->RedrawDesktop();
107 } 115 }
108 116
109 static void SendMouseEvent(JNIEnv* env, 117 static void SendMouseEvent(JNIEnv* env,
110 jclass clazz, 118 const JavaParamRef<jclass>& clazz,
111 jint x, 119 jint x,
112 jint y, 120 jint y,
113 jint whichButton, 121 jint whichButton,
114 jboolean buttonDown) { 122 jboolean buttonDown) {
115 // Button must be within the bounds of the MouseEvent_MouseButton enum. 123 // Button must be within the bounds of the MouseEvent_MouseButton enum.
116 DCHECK(whichButton >= 0 && whichButton < 5); 124 DCHECK(whichButton >= 0 && whichButton < 5);
117 125
118 remoting::ChromotingJniRuntime::GetInstance()->session()->SendMouseEvent( 126 remoting::ChromotingJniRuntime::GetInstance()->session()->SendMouseEvent(
119 x, y, 127 x, y,
120 static_cast<remoting::protocol::MouseEvent_MouseButton>(whichButton), 128 static_cast<remoting::protocol::MouseEvent_MouseButton>(whichButton),
121 buttonDown); 129 buttonDown);
122 } 130 }
123 131
124 static void SendMouseWheelEvent(JNIEnv* env, 132 static void SendMouseWheelEvent(JNIEnv* env,
125 jclass clazz, 133 const JavaParamRef<jclass>& clazz,
126 jint delta_x, 134 jint delta_x,
127 jint delta_y) { 135 jint delta_y) {
128 remoting::ChromotingJniRuntime::GetInstance()->session()->SendMouseWheelEvent( 136 remoting::ChromotingJniRuntime::GetInstance()->session()->SendMouseWheelEvent(
129 delta_x, delta_y); 137 delta_x, delta_y);
130 } 138 }
131 139
132 static jboolean SendKeyEvent(JNIEnv* env, 140 static jboolean SendKeyEvent(JNIEnv* env,
133 jclass clazz, 141 const JavaParamRef<jclass>& clazz,
134 jint keyCode, 142 jint keyCode,
135 jboolean keyDown) { 143 jboolean keyDown) {
136 return remoting::ChromotingJniRuntime::GetInstance()->session()->SendKeyEvent( 144 return remoting::ChromotingJniRuntime::GetInstance()->session()->SendKeyEvent(
137 keyCode, keyDown); 145 keyCode, keyDown);
138 } 146 }
139 147
140 static void SendTextEvent(JNIEnv* env, 148 static void SendTextEvent(JNIEnv* env,
141 jclass clazz, 149 const JavaParamRef<jclass>& clazz,
142 jstring text) { 150 const JavaParamRef<jstring>& text) {
143 remoting::ChromotingJniRuntime::GetInstance()->session()->SendTextEvent( 151 remoting::ChromotingJniRuntime::GetInstance()->session()->SendTextEvent(
144 ConvertJavaStringToUTF8(env, text)); 152 ConvertJavaStringToUTF8(env, text));
145 } 153 }
146 154
147 static void EnableVideoChannel(JNIEnv* env, 155 static void EnableVideoChannel(JNIEnv* env,
148 jclass clazz, 156 const JavaParamRef<jclass>& clazz,
149 jboolean enable) { 157 jboolean enable) {
150 remoting::ChromotingJniRuntime::GetInstance()->session()->EnableVideoChannel( 158 remoting::ChromotingJniRuntime::GetInstance()->session()->EnableVideoChannel(
151 enable); 159 enable);
152 } 160 }
153 161
154 static void OnThirdPartyTokenFetched(JNIEnv* env, 162 static void OnThirdPartyTokenFetched(
155 jclass clazz, 163 JNIEnv* env,
156 jstring token, 164 const JavaParamRef<jclass>& clazz,
157 jstring shared_secret) { 165 const JavaParamRef<jstring>& token,
166 const JavaParamRef<jstring>& shared_secret) {
158 ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance(); 167 ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance();
159 runtime->network_task_runner()->PostTask(FROM_HERE, base::Bind( 168 runtime->network_task_runner()->PostTask(FROM_HERE, base::Bind(
160 &ChromotingJniInstance::HandleOnThirdPartyTokenFetched, 169 &ChromotingJniInstance::HandleOnThirdPartyTokenFetched,
161 runtime->session(), 170 runtime->session(),
162 ConvertJavaStringToUTF8(env, token), 171 ConvertJavaStringToUTF8(env, token),
163 ConvertJavaStringToUTF8(env, shared_secret))); 172 ConvertJavaStringToUTF8(env, shared_secret)));
164 } 173 }
165 174
166 static void SendExtensionMessage(JNIEnv* env, 175 static void SendExtensionMessage(JNIEnv* env,
167 jclass clazz, 176 const JavaParamRef<jclass>& clazz,
168 jstring type, 177 const JavaParamRef<jstring>& type,
169 jstring data) { 178 const JavaParamRef<jstring>& data) {
170 remoting::ChromotingJniRuntime::GetInstance()->session()->SendClientMessage( 179 remoting::ChromotingJniRuntime::GetInstance()->session()->SendClientMessage(
171 ConvertJavaStringToUTF8(env, type), 180 ConvertJavaStringToUTF8(env, type),
172 ConvertJavaStringToUTF8(env, data)); 181 ConvertJavaStringToUTF8(env, data));
173 } 182 }
174 183
175 // ChromotingJniRuntime implementation. 184 // ChromotingJniRuntime implementation.
176 185
177 // static 186 // static
178 ChromotingJniRuntime* ChromotingJniRuntime::GetInstance() { 187 ChromotingJniRuntime* ChromotingJniRuntime::GetInstance() {
179 return Singleton<ChromotingJniRuntime>::get(); 188 return Singleton<ChromotingJniRuntime>::get();
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 367
359 JNIEnv* env = base::android::AttachCurrentThread(); 368 JNIEnv* env = base::android::AttachCurrentThread();
360 Java_JniInterface_redrawGraphicsInternal(env); 369 Java_JniInterface_redrawGraphicsInternal(env);
361 } 370 }
362 371
363 void ChromotingJniRuntime::DetachFromVmAndSignal(base::WaitableEvent* waiter) { 372 void ChromotingJniRuntime::DetachFromVmAndSignal(base::WaitableEvent* waiter) {
364 base::android::DetachFromVM(); 373 base::android::DetachFromVM();
365 waiter->Signal(); 374 waiter->Signal();
366 } 375 }
367 } // namespace remoting 376 } // namespace remoting
OLDNEW
« no previous file with comments | « net/test/embedded_test_server/android/embedded_test_server_android.cc ('k') | remoting/client/jni/jni_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698