1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.android_webview; 6 7 import org.chromium.base.CalledByNative; 8 import org.chromium.base.JNINamespace; 9 10 import java.io.InputStream; 11 import java.util.Map; 12 13 /** 14 * The response information that is to be returned for a particular resource fetch. 15 */ 16 @JNINamespace("android_webview") 17 public class AwWebResourceResponse { 18 private String mMimeType; 19 private String mCharset; 20 private InputStream mData; 21 private int mStatusCode; 22 private String mReasonPhrase; 23 private String[] mResponseHeaderNames; 24 private String[] mResponseHeaderValues; 25 AwWebResourceResponse(String mimeType, String encoding, InputStream data)26 public AwWebResourceResponse(String mimeType, String encoding, InputStream data) { 27 mMimeType = mimeType; 28 mCharset = encoding; 29 mData = data; 30 } 31 AwWebResourceResponse(String mimeType, String encoding, InputStream data, int statusCode, String reasonPhrase, Map<String, String> responseHeaders)32 public AwWebResourceResponse(String mimeType, String encoding, InputStream data, 33 int statusCode, String reasonPhrase, Map<String, String> responseHeaders) { 34 this(mimeType, encoding, data); 35 36 mStatusCode = statusCode; 37 mReasonPhrase = reasonPhrase; 38 39 if (responseHeaders != null) { 40 mResponseHeaderNames = new String[responseHeaders.size()]; 41 mResponseHeaderValues = new String[responseHeaders.size()]; 42 int i = 0; 43 for (Map.Entry<String, String> entry : responseHeaders.entrySet()) { 44 mResponseHeaderNames[i] = entry.getKey(); 45 mResponseHeaderValues[i] = entry.getValue(); 46 i++; 47 } 48 } 49 } 50 51 @CalledByNative getMimeType()52 public String getMimeType() { 53 return mMimeType; 54 } 55 56 @CalledByNative getCharset()57 public String getCharset() { 58 return mCharset; 59 } 60 61 @CalledByNative getData()62 public InputStream getData() { 63 return mData; 64 } 65 66 @CalledByNative getStatusCode()67 public int getStatusCode() { 68 return mStatusCode; 69 } 70 71 @CalledByNative getReasonPhrase()72 public String getReasonPhrase() { 73 return mReasonPhrase; 74 } 75 76 @CalledByNative getResponseHeaderNames()77 public String[] getResponseHeaderNames() { 78 return mResponseHeaderNames; 79 } 80 81 @CalledByNative getResponseHeaderValues()82 public String[] getResponseHeaderValues() { 83 return mResponseHeaderValues; 84 } 85 } 86