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 361c7243048dbe20d58ccefc9bb4321bac01a2bc..74be22c9cec6780948b1a4b2984c5fd4efb45558 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(); |
@@ -427,6 +428,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); |