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 "url/gurl.h" 8 9 // Must come after all headers that specialize FromJniType() / ToJniType(). 10 #include "net/net_jni_headers/HttpUtil_jni.h" 11 12 using base::android::ConvertJavaStringToUTF8; 13 using base::android::JavaParamRef; 14 using base::android::ScopedJavaLocalRef; 15 16 namespace net { 17 JNI_HttpUtil_IsAllowedHeader(JNIEnv * env,const JavaParamRef<jstring> & j_header_name,const JavaParamRef<jstring> & j_header_value)18jboolean JNI_HttpUtil_IsAllowedHeader( 19 JNIEnv* env, 20 const JavaParamRef<jstring>& j_header_name, 21 const JavaParamRef<jstring>& j_header_value) { 22 std::string header_name(ConvertJavaStringToUTF8(env, j_header_name)); 23 std::string header_value(ConvertJavaStringToUTF8(env, j_header_value)); 24 25 return HttpUtil::IsValidHeaderName(header_name) && 26 HttpUtil::IsSafeHeader(header_name, header_value) && 27 HttpUtil::IsValidHeaderValue(header_value); 28 } 29 30 } // namespace net 31