1 /* 2 * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved. 3 */ 4 #include "config.h" 5 #include "ResourceRequest.h" 6 7 #include <wtf/java/JavaEnv.h> 8 9 namespace ResourceRequestJavaInternal { 10 11 static JGClass networkContextClass; 12 static jmethodID getMaximumHTTPConnectionCountPerHostMethod; 13 14 static void initRefs(JNIEnv* env) 15 { 16 if (!networkContextClass) { 17 networkContextClass = JLClass(env->FindClass( 18 "com/sun/webkit/network/NetworkContext")); 19 ASSERT(networkContextClass); 20 21 getMaximumHTTPConnectionCountPerHostMethod = env->GetStaticMethodID( 22 networkContextClass, 23 "fwkGetMaximumHTTPConnectionCountPerHost", 24 "()I"); 25 ASSERT(getMaximumHTTPConnectionCountPerHostMethod); 26 } 27 } 28 } 29 30 namespace WebCore { 31 32 unsigned initializeMaximumHTTPConnectionCountPerHost() 33 { 34 using namespace ResourceRequestJavaInternal; 35 // This is used by the loader to control the number of parallel load 36 // requests. Our java framework employs HttpURLConnection for all 37 // HTTP exchanges, so we delegate this call to java to return 38 // the value of the "http.maxConnections" system property. 39 JNIEnv* env = WebCore_GetJavaEnv(); 40 initRefs(env); 41 42 jint result = env->CallStaticIntMethod( 43 networkContextClass, 44 getMaximumHTTPConnectionCountPerHostMethod); 45 CheckAndClearException(env); 46 47 ASSERT(result >= 0); 48 return result; 49 } 50 51 } // namespace WebCore