Chromium Code Reviews| Index: components/cronet/android/cronet_url_request_context.cc |
| diff --git a/components/cronet/android/cronet_url_request_context.cc b/components/cronet/android/cronet_url_request_context.cc |
| index a9b6014217c7ffd110f42fa9a90a4eea5a3227da..ddcdc5d83731157a3a0007d110525f08aba07794 100644 |
| --- a/components/cronet/android/cronet_url_request_context.cc |
| +++ b/components/cronet/android/cronet_url_request_context.cc |
| @@ -45,19 +45,8 @@ static jlong CreateRequestContextAdapter(JNIEnv* env, |
| if (!context_config->LoadFromJSON(config_string)) |
| return 0; |
|
mmenke
2015/01/08 19:06:16
We parse the config here...And then we just throw
mef
2015/01/08 21:17:02
Done.
|
| - // Set application context. |
| - base::android::ScopedJavaLocalRef<jobject> scoped_context(env, japp_context); |
| - base::android::InitApplicationContext(env, scoped_context); |
| - |
| - base::android::ScopedJavaGlobalRef<jobject> jcaller_ref; |
| - jcaller_ref.Reset(env, jcaller); |
| - |
| CronetURLRequestContextAdapter* context_adapter = |
| new CronetURLRequestContextAdapter(); |
| - base::Closure init_java_network_thread = base::Bind(&initJavaNetworkThread, |
| - jcaller_ref); |
| - context_adapter->Initialize(context_config.Pass(), init_java_network_thread); |
| - |
| return reinterpret_cast<jlong>(context_adapter); |
| } |
| @@ -106,4 +95,31 @@ static jint SetMinLogLevel(JNIEnv* env, jobject jcaller, jint jlog_level) { |
| return old_log_level; |
| } |
| +// Called on application's main Java thread. |
| +static void InitRequestContextOnMainThread(JNIEnv* env, |
| + jobject jcaller, |
| + jlong jurl_request_context_adapter, |
| + jstring jconfig) { |
| + if (jurl_request_context_adapter == 0) |
| + return; |
| + |
| + std::string config_string = |
| + base::android::ConvertJavaStringToUTF8(env, jconfig); |
| + scoped_ptr<URLRequestContextConfig> context_config( |
| + new URLRequestContextConfig()); |
| + if (!context_config->LoadFromJSON(config_string)) |
| + return; |
| + |
| + CronetURLRequestContextAdapter* context_adapter = |
| + reinterpret_cast<CronetURLRequestContextAdapter*>( |
| + jurl_request_context_adapter); |
| + |
| + base::android::ScopedJavaGlobalRef<jobject> jcaller_ref; |
| + jcaller_ref.Reset(env, jcaller); |
| + base::Closure init_java_network_thread = base::Bind(&initJavaNetworkThread, |
| + jcaller_ref); |
| + context_adapter->InitRequestContextOnMainThread( |
| + context_config.Pass(), init_java_network_thread); |
| +} |
| + |
| } // namespace cronet |