1 // Copyright 2018 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/android/jni_string.h" 6 #include "net/http/http_util.h" 7 #include "net/net_jni_headers/HttpUtil_jni.h" 8 #include "url/gurl.h" 9 10 using base::android::ConvertJavaStringToUTF8; 11 using base::android::JavaParamRef; 12 using base::android::ScopedJavaLocalRef; 13 14 namespace net { 15 JNI_HttpUtil_IsAllowedHeader(JNIEnv * env,const JavaParamRef<jstring> & j_header_name,const JavaParamRef<jstring> & j_header_value)16jboolean JNI_HttpUtil_IsAllowedHeader( 17 JNIEnv* env, 18 const JavaParamRef<jstring>& j_header_name, 19 const JavaParamRef<jstring>& j_header_value) { 20 std::string header_name(ConvertJavaStringToUTF8(env, j_header_name)); 21 std::string header_value(ConvertJavaStringToUTF8(env, j_header_value)); 22 23 return HttpUtil::IsValidHeaderName(header_name) && 24 HttpUtil::IsSafeHeader(header_name, header_value) && 25 HttpUtil::IsValidHeaderValue(header_value); 26 } 27 28 } // namespace net 29