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

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

Issue 2643483003: [Remoting Android] Refactor ClientTelemetryLogger (Closed)
Patch Set: PTAL Created 3 years, 11 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/jni_client.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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/jni_client.h" 5 #include "remoting/client/jni/jni_client.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "jni/Client_jni.h" 10 #include "jni/Client_jni.h"
11 #include "remoting/client/jni/chromoting_jni_instance.h" 11 #include "remoting/client/jni/chromoting_jni_instance.h"
12 #include "remoting/client/jni/chromoting_jni_runtime.h" 12 #include "remoting/client/jni/chromoting_jni_runtime.h"
13 #include "remoting/client/jni/connect_to_host_info.h"
13 #include "remoting/client/jni/jni_gl_display_handler.h" 14 #include "remoting/client/jni/jni_gl_display_handler.h"
14 #include "remoting/client/jni/jni_pairing_secret_fetcher.h" 15 #include "remoting/client/jni/jni_pairing_secret_fetcher.h"
15 #include "remoting/client/jni/jni_touch_event_data.h" 16 #include "remoting/client/jni/jni_touch_event_data.h"
16 #include "remoting/protocol/video_renderer.h" 17 #include "remoting/protocol/video_renderer.h"
17 18
18 using base::android::ConvertJavaStringToUTF8; 19 using base::android::ConvertJavaStringToUTF8;
19 using base::android::ConvertUTF8ToJavaString; 20 using base::android::ConvertUTF8ToJavaString;
20 using base::android::JavaParamRef; 21 using base::android::JavaParamRef;
21 using base::android::ScopedJavaLocalRef; 22 using base::android::ScopedJavaLocalRef;
22 23
23 namespace remoting { 24 namespace remoting {
24 25
25 JniClient::JniClient(ChromotingJniRuntime* runtime, 26 JniClient::JniClient(ChromotingJniRuntime* runtime,
26 base::android::ScopedJavaGlobalRef<jobject> java_client) 27 base::android::ScopedJavaGlobalRef<jobject> java_client)
27 : runtime_(runtime), 28 : runtime_(runtime),
28 java_client_(java_client), 29 java_client_(java_client),
29 weak_factory_(this) { 30 weak_factory_(this) {
30 weak_ptr_ = weak_factory_.GetWeakPtr(); 31 weak_ptr_ = weak_factory_.GetWeakPtr();
31 } 32 }
32 33
33 JniClient::~JniClient() { 34 JniClient::~JniClient() {
34 DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); 35 DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread());
35 36
36 // The session must be shut down first, since it depends on our other 37 // The session must be shut down first, since it depends on our other
37 // components' still being alive. 38 // components' still being alive.
38 DisconnectFromHost(); 39 DisconnectFromHost();
39 } 40 }
40 41
41 void JniClient::ConnectToHost(const std::string& username, 42 void JniClient::ConnectToHost(const ConnectToHostInfo& info) {
42 const std::string& auth_token,
43 const std::string& host_jid,
44 const std::string& host_id,
45 const std::string& host_pubkey,
46 const std::string& pairing_id,
47 const std::string& pairing_secret,
48 const std::string& capabilities,
49 const std::string& flags,
50 const std::string& host_version,
51 const std::string& host_os,
52 const std::string& host_os_version) {
53 DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); 43 DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread());
54 DCHECK(!display_handler_); 44 DCHECK(!display_handler_);
55 DCHECK(!session_); 45 DCHECK(!session_);
56 DCHECK(!secret_fetcher_); 46 DCHECK(!secret_fetcher_);
57 display_handler_.reset(new JniGlDisplayHandler(runtime_, java_client_)); 47 display_handler_.reset(new JniGlDisplayHandler(runtime_, java_client_));
58 secret_fetcher_.reset(new JniPairingSecretFetcher(runtime_, GetWeakPtr(), 48 secret_fetcher_.reset(
59 host_id)); 49 new JniPairingSecretFetcher(runtime_, GetWeakPtr(), info.host_id));
60 // TODO(BUG 680752): Create ClientTelemetryLogger here. No need to pass host
61 // info all the way down. Currently we have to do that due to thread
62 // restriction.
63 session_.reset(new ChromotingJniInstance( 50 session_.reset(new ChromotingJniInstance(
64 runtime_, GetWeakPtr(), secret_fetcher_->GetWeakPtr(), 51 runtime_, GetWeakPtr(), secret_fetcher_->GetWeakPtr(),
65 display_handler_->CreateCursorShapeStub(), 52 display_handler_->CreateCursorShapeStub(),
66 display_handler_->CreateVideoRenderer(), 53 display_handler_->CreateVideoRenderer(), info));
67 username, auth_token, host_jid, host_id,
68 host_pubkey, pairing_id, pairing_secret, capabilities, flags,
69 host_version, host_os, host_os_version));
70 session_->Connect(); 54 session_->Connect();
71 } 55 }
72 56
73 void JniClient::DisconnectFromHost() { 57 void JniClient::DisconnectFromHost() {
74 DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); 58 DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread());
75 if (session_) { 59 if (session_) {
76 session_->Disconnect(); 60 session_->Disconnect();
77 runtime_->network_task_runner()->DeleteSoon(FROM_HERE, 61 runtime_->network_task_runner()->DeleteSoon(FROM_HERE,
78 session_.release()); 62 session_.release());
79 } 63 }
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 135
152 // static 136 // static
153 bool JniClient::RegisterJni(JNIEnv* env) { 137 bool JniClient::RegisterJni(JNIEnv* env) {
154 return RegisterNativesImpl(env); 138 return RegisterNativesImpl(env);
155 } 139 }
156 140
157 void JniClient::Connect( 141 void JniClient::Connect(
158 JNIEnv* env, 142 JNIEnv* env,
159 const base::android::JavaParamRef<jobject>& caller, 143 const base::android::JavaParamRef<jobject>& caller,
160 const base::android::JavaParamRef<jstring>& username, 144 const base::android::JavaParamRef<jstring>& username,
161 const base::android::JavaParamRef<jstring>& authToken, 145 const base::android::JavaParamRef<jstring>& auth_token,
162 const base::android::JavaParamRef<jstring>& hostJid, 146 const base::android::JavaParamRef<jstring>& host_jid,
163 const base::android::JavaParamRef<jstring>& hostId, 147 const base::android::JavaParamRef<jstring>& host_id,
164 const base::android::JavaParamRef<jstring>& hostPubkey, 148 const base::android::JavaParamRef<jstring>& host_pubkey,
165 const base::android::JavaParamRef<jstring>& pairId, 149 const base::android::JavaParamRef<jstring>& pair_id,
166 const base::android::JavaParamRef<jstring>& pairSecret, 150 const base::android::JavaParamRef<jstring>& pair_secret,
167 const base::android::JavaParamRef<jstring>& capabilities, 151 const base::android::JavaParamRef<jstring>& capabilities,
168 const base::android::JavaParamRef<jstring>& flags, 152 const base::android::JavaParamRef<jstring>& flags,
169 const base::android::JavaParamRef<jstring>& host_version, 153 const base::android::JavaParamRef<jstring>& host_version,
170 const base::android::JavaParamRef<jstring>& host_os, 154 const base::android::JavaParamRef<jstring>& host_os,
171 const base::android::JavaParamRef<jstring>& host_os_version) { 155 const base::android::JavaParamRef<jstring>& host_os_version) {
172 ConnectToHost(ConvertJavaStringToUTF8(env, username), 156 ConnectToHostInfo info;
173 ConvertJavaStringToUTF8(env, authToken), 157 info.username = ConvertJavaStringToUTF8(env, username);
174 ConvertJavaStringToUTF8(env, hostJid), 158 info.auth_token = ConvertJavaStringToUTF8(env, auth_token);
175 ConvertJavaStringToUTF8(env, hostId), 159 info.host_jid = ConvertJavaStringToUTF8(env, host_jid);
176 ConvertJavaStringToUTF8(env, hostPubkey), 160 info.host_id = ConvertJavaStringToUTF8(env, host_id);
177 ConvertJavaStringToUTF8(env, pairId), 161 info.host_pubkey = ConvertJavaStringToUTF8(env, host_pubkey);
178 ConvertJavaStringToUTF8(env, pairSecret), 162 info.pairing_id = ConvertJavaStringToUTF8(env, pair_id);
179 ConvertJavaStringToUTF8(env, capabilities), 163 info.pairing_secret = ConvertJavaStringToUTF8(env, pair_secret);
180 ConvertJavaStringToUTF8(env, flags), 164 info.capabilities = ConvertJavaStringToUTF8(env, capabilities);
181 ConvertJavaStringToUTF8(env, host_version), 165 info.flags = ConvertJavaStringToUTF8(env, flags);
182 ConvertJavaStringToUTF8(env, host_os), 166 info.host_version = ConvertJavaStringToUTF8(env, host_version);
183 ConvertJavaStringToUTF8(env, host_os_version)); 167 info.host_os = ConvertJavaStringToUTF8(env, host_os);
168 info.host_os_version = ConvertJavaStringToUTF8(env, host_os_version);
169 ConnectToHost(info);
184 } 170 }
185 171
186 void JniClient::Disconnect(JNIEnv* env, 172 void JniClient::Disconnect(JNIEnv* env,
187 const base::android::JavaParamRef<jobject>& caller) { 173 const base::android::JavaParamRef<jobject>& caller) {
188 DisconnectFromHost(); 174 DisconnectFromHost();
189 } 175 }
190 176
191 void JniClient::AuthenticationResponse( 177 void JniClient::AuthenticationResponse(
192 JNIEnv* env, 178 JNIEnv* env,
193 const JavaParamRef<jobject>& caller, 179 const JavaParamRef<jobject>& caller,
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 return weak_ptr_; 285 return weak_ptr_;
300 } 286 }
301 287
302 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& caller) { 288 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& caller) {
303 return reinterpret_cast<intptr_t>( 289 return reinterpret_cast<intptr_t>(
304 new JniClient(ChromotingJniRuntime::GetInstance(), 290 new JniClient(ChromotingJniRuntime::GetInstance(),
305 base::android::ScopedJavaGlobalRef<jobject>(env, caller))); 291 base::android::ScopedJavaGlobalRef<jobject>(env, caller)));
306 } 292 }
307 293
308 } // namespace remoting 294 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/jni/jni_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698