Index: components/cronet/android/java/src/org/chromium/net/UrlRequest.java |
diff --git a/components/cronet/android/java/src/org/chromium/net/UrlRequest.java b/components/cronet/android/java/src/org/chromium/net/UrlRequest.java |
index 9aef0086d32a0271492f7e3cd55a8d0db49f1583..8300d6a1ab373bf8d9676120b27016054602de62 100644 |
--- a/components/cronet/android/java/src/org/chromium/net/UrlRequest.java |
+++ b/components/cronet/android/java/src/org/chromium/net/UrlRequest.java |
@@ -15,7 +15,9 @@ import java.net.UnknownHostException; |
import java.nio.ByteBuffer; |
import java.nio.channels.ReadableByteChannel; |
import java.nio.channels.WritableByteChannel; |
+import java.util.ArrayList; |
import java.util.HashMap; |
+import java.util.List; |
import java.util.Map; |
import java.util.Map.Entry; |
@@ -276,6 +278,14 @@ public class UrlRequest { |
return nativeGetHeader(mUrlRequestPeer, name); |
} |
+ // All response headers. |
+ public Map<String, List<String>> getAllHeaders() { |
+ validateHeadersAvailable(); |
+ ResponseHeadersMap result = new ResponseHeadersMap(); |
+ nativeGetAllHeaders(mUrlRequestPeer, result); |
+ return result; |
+ } |
+ |
/** |
* A callback invoked when the first chunk of the response has arrived. |
*/ |
@@ -335,6 +345,19 @@ public class UrlRequest { |
} |
} |
+ /** |
+ * Appends header |name| with value |value| to |headersMap|. |
+ */ |
+ @SuppressWarnings("unused") |
+ @CalledByNative |
+ private void onAppendResponseHeader(ResponseHeadersMap headersMap, |
+ String name, String value) { |
+ if (!headersMap.containsKey(name)) { |
+ headersMap.put(name, new ArrayList<String>()); |
+ } |
+ headersMap.get(name).add(value); |
+ } |
+ |
private void validateNotRecycled() { |
if (mRecycled) { |
throw new IllegalStateException("Accessing recycled request"); |
@@ -389,4 +412,13 @@ public class UrlRequest { |
private native long nativeGetContentLength(long urlRequestPeer); |
private native String nativeGetHeader(long urlRequestPeer, String name); |
+ |
+ private native void nativeGetAllHeaders(long urlRequestPeer, |
+ ResponseHeadersMap headers); |
+ |
+ |
+ private class ResponseHeadersMap extends HashMap<String, List<String> > { |
+ |
+ } |
mmenke
2014/08/04 21:39:55
I believe this is generally considered an anti-pat
mef
2014/08/04 21:57:52
Yeah, I've started without it, but JNI generator w
|
+ |
mmenke
2014/08/04 21:39:55
nit: Remove extra whitespace.
mef
2014/08/04 21:57:53
Done.
|
} |