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