Index: components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java |
diff --git a/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java b/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java |
index f9656fac1bc069dfd4df2271014bfbf926d1c898..d5f5259c7aba2039d7c58472769a924a379db581 100644 |
--- a/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java |
+++ b/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java |
@@ -82,7 +82,8 @@ public class CronetUrlRequestContext extends CronetEngine { |
/** |
* Locks operations on the list of RequestFinishedInfo.Listeners, because operations can happen |
- * on any thread. |
+ * on any thread. This should be used for fine-grained locking only. In particular, don't call |
+ * any UrlRequest methods that acquire mUrlRequestAdapterLock while holding this lock. |
*/ |
private final Object mFinishedListenerLock = new Object(); |
@@ -430,6 +431,12 @@ public class CronetUrlRequestContext extends CronetEngine { |
} |
} |
+ boolean hasRequestFinishedListener() { |
+ synchronized (mFinishedListenerLock) { |
+ return !mFinishedListenerList.isEmpty(); |
+ } |
+ } |
+ |
@Override |
public URLConnection openConnection(URL url) { |
return openConnection(url, Proxy.NO_PROXY); |