| Index: components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
|
| diff --git a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
|
| index 4c7afc6c0f2278fc2be06da86220681d7d2ee5ac..5846ecebc29c64cd0627d3452d34cf601b263560 100644
|
| --- a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
|
| +++ b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
|
| @@ -6,6 +6,8 @@ package org.chromium.net;
|
|
|
| import android.content.Context;
|
| import android.os.Build;
|
| +import android.os.Handler;
|
| +import android.os.Looper;
|
| import android.os.Process;
|
| import android.util.Log;
|
|
|
| @@ -31,12 +33,25 @@ public class CronetUrlRequestContext extends UrlRequestContext {
|
|
|
| public CronetUrlRequestContext(Context context,
|
| UrlRequestContextConfig config) {
|
| + CronetLibraryLoader.ensureInitialized(context, config);
|
| nativeSetMinLogLevel(getLoggingLevel());
|
| + final String configString = config.toString();
|
| mUrlRequestContextAdapter = nativeCreateRequestContextAdapter(
|
| - context, config.toString());
|
| + context, configString);
|
| if (mUrlRequestContextAdapter == 0) {
|
| throw new NullPointerException("Context Adapter creation failed");
|
| }
|
| + // Post a task to UI thread to init native Chromium URLRequestContext.
|
| + // TODO(xunjieli): This constructor is not supposed to be invoked on
|
| + // the main thread. Consider making the following code into a blocking
|
| + // API to handle the case where we are already on main thread.
|
| + Runnable task = new Runnable() {
|
| + public void run() {
|
| + nativeInitRequestContextOnMainThread(
|
| + mUrlRequestContextAdapter, configString);
|
| + }
|
| + };
|
| + new Handler(Looper.getMainLooper()).post(task);
|
| }
|
|
|
| @Override
|
| @@ -146,4 +161,7 @@ public class CronetUrlRequestContext extends UrlRequestContext {
|
| private native void nativeStopNetLog(long urlRequestContextAdapter);
|
|
|
| private native int nativeSetMinLogLevel(int loggingLevel);
|
| +
|
| + private native void nativeInitRequestContextOnMainThread(
|
| + long urlRequestContextAdapter, String config);
|
| }
|
|
|