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

Unified Diff: webrtc/sdk/android/src/jni/pc/java_native_conversion.cc

Issue 2993403002: Support a user-provided string for the TLS ALPN extension.
Patch Set: Fix previous commit Created 3 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/sdk/android/src/jni/pc/java_native_conversion.cc
diff --git a/webrtc/sdk/android/src/jni/pc/java_native_conversion.cc b/webrtc/sdk/android/src/jni/pc/java_native_conversion.cc
index b9f2703196ac16db54e79cf7c307851aa4f3b1f4..f5e7c74a07db177bb75b305049162828763bf9c6 100644
--- a/webrtc/sdk/android/src/jni/pc/java_native_conversion.cc
+++ b/webrtc/sdk/android/src/jni/pc/java_native_conversion.cc
@@ -343,6 +343,17 @@ webrtc::PeerConnectionInterface::TlsCertPolicy JavaToNativeTlsCertPolicy(
return webrtc::PeerConnectionInterface::kTlsCertPolicySecure;
}
+std::vector<std::string> JavaToStdVectorStrings(JNIEnv* jni, jobject list) {
+ std::vector<std::string> converted_list;
+ if (list != nullptr) {
+ for (jobject str : Iterable(jni, list)) {
+ converted_list.push_back(
+ JavaToStdString(jni, reinterpret_cast<jstring>(str)));
+ }
+ }
+ return converted_list;
+}
+
void JavaToNativeIceServers(
JNIEnv* jni,
jobject j_ice_servers,
@@ -362,6 +373,8 @@ void JavaToNativeIceServers(
GetObjectField(jni, j_ice_server, j_ice_server_tls_cert_policy_id);
jfieldID j_ice_server_hostname_id =
GetFieldID(jni, j_ice_server_class, "hostname", "Ljava/lang/String;");
+ jfieldID j_ice_server_tls_alpn_protocols_id = GetFieldID(
+ jni, j_ice_server_class, "tlsAlpnProtocols", "Ljava/util/List;");
jstring uri = reinterpret_cast<jstring>(
GetObjectField(jni, j_ice_server, j_ice_server_uri_id));
jstring username = reinterpret_cast<jstring>(
@@ -372,12 +385,15 @@ void JavaToNativeIceServers(
JavaToNativeTlsCertPolicy(jni, j_ice_server_tls_cert_policy);
jstring hostname = reinterpret_cast<jstring>(
GetObjectField(jni, j_ice_server, j_ice_server_hostname_id));
+ jobject tls_alpn_protocols = GetNullableObjectField(
+ jni, j_ice_server, j_ice_server_tls_alpn_protocols_id);
webrtc::PeerConnectionInterface::IceServer server;
server.uri = JavaToStdString(jni, uri);
server.username = JavaToStdString(jni, username);
server.password = JavaToStdString(jni, password);
server.tls_cert_policy = tls_cert_policy;
server.hostname = JavaToStdString(jni, hostname);
+ server.tls_alpn_protocols = JavaToStdVectorStrings(jni, tls_alpn_protocols);
ice_servers->push_back(server);
}
}

Powered by Google App Engine
This is Rietveld 408576698