Index: android_webview/java/src/org/chromium/android_webview/AwWebResourceResponse.java |
diff --git a/android_webview/java/src/org/chromium/android_webview/AwWebResourceResponse.java b/android_webview/java/src/org/chromium/android_webview/AwWebResourceResponse.java |
index c31d722944b1f3882e892525a66ba5d1b58abb41..bb0e05e6dca14c324ace37462c086521bcb3e1b1 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/AwWebResourceResponse.java |
+++ b/android_webview/java/src/org/chromium/android_webview/AwWebResourceResponse.java |
@@ -6,7 +6,6 @@ package org.chromium.android_webview; |
import org.chromium.base.CalledByNative; |
import org.chromium.base.JNINamespace; |
-import org.chromium.base.VisibleForTesting; |
import java.io.InputStream; |
import java.util.Map; |
@@ -21,6 +20,7 @@ public class AwWebResourceResponse { |
private InputStream mData; |
private int mStatusCode; |
private String mReasonPhrase; |
+ private Map<String, String> mResponseHeaders; |
private String[] mResponseHeaderNames; |
private String[] mResponseHeaderValues; |
@@ -36,53 +36,59 @@ public class AwWebResourceResponse { |
mStatusCode = statusCode; |
mReasonPhrase = reasonPhrase; |
+ mResponseHeaders = responseHeaders; |
+ } |
- if (responseHeaders != null) { |
- mResponseHeaderNames = new String[responseHeaders.size()]; |
- mResponseHeaderValues = new String[responseHeaders.size()]; |
- int i = 0; |
- for (Map.Entry<String, String> entry : responseHeaders.entrySet()) { |
- mResponseHeaderNames[i] = entry.getKey(); |
- mResponseHeaderValues[i] = entry.getValue(); |
- i++; |
- } |
+ private void fillInResponseHeaderNamesAndValuesIfNeeded() { |
+ if (mResponseHeaders == null || mResponseHeaderNames != null) return; |
+ mResponseHeaderNames = new String[mResponseHeaders.size()]; |
+ mResponseHeaderValues = new String[mResponseHeaders.size()]; |
+ int i = 0; |
+ for (Map.Entry<String, String> entry : mResponseHeaders.entrySet()) { |
+ mResponseHeaderNames[i] = entry.getKey(); |
+ mResponseHeaderValues[i] = entry.getValue(); |
+ i++; |
} |
} |
- @VisibleForTesting |
@CalledByNative |
public String getMimeType() { |
return mMimeType; |
} |
@CalledByNative |
- private String getCharset() { |
+ public String getCharset() { |
return mCharset; |
} |
- @VisibleForTesting |
@CalledByNative |
public InputStream getData() { |
return mData; |
} |
@CalledByNative |
- private int getStatusCode() { |
+ public int getStatusCode() { |
return mStatusCode; |
} |
@CalledByNative |
- private String getReasonPhrase() { |
+ public String getReasonPhrase() { |
return mReasonPhrase; |
} |
+ public Map<String, String> getResponseHeaders() { |
+ return mResponseHeaders; |
+ } |
+ |
@CalledByNative |
private String[] getResponseHeaderNames() { |
+ fillInResponseHeaderNamesAndValuesIfNeeded(); |
return mResponseHeaderNames; |
} |
@CalledByNative |
private String[] getResponseHeaderValues() { |
+ fillInResponseHeaderNamesAndValuesIfNeeded(); |
return mResponseHeaderValues; |
} |
} |