Chromium Code Reviews| Index: content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java |
| diff --git a/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java b/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java |
| index 24d153f92ea367b27f42a1b6bdaa371c76a4380d..696dbcdc5d8e033f1095aabbace511a4254ed5e9 100644 |
| --- a/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java |
| +++ b/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java |
| @@ -29,6 +29,10 @@ public class LoadUrlParams { |
| public static int UA_OVERRIDE_FALSE; |
| public static int UA_OVERRIDE_TRUE; |
| + // The default character encoding for data URLs as defined in |
| + // RFC 2397. |
| + private static final String DATA_URL_DEFAULT_CHARSET = "US-ASCII"; |
| + |
| // Fields with counterparts in NavigationController::LoadURLParams. |
| // Package private so that ContentViewCore.loadUrl can pass them down to |
| // native code. Should not be accessed directly anywhere else outside of |
| @@ -57,15 +61,29 @@ public class LoadUrlParams { |
| } |
| /** |
| + * Helper method to create a LoadUrlParams object for data url. Defaults |
| + * to US-ASCII charset, as per RFC2397. |
| + * @param data Data to be loaded. |
| + * @param mimeType Mime type of the data. |
| + * @param isBase64Encoded True if the data is encoded in Base 64 format. |
| + */ |
| + public static LoadUrlParams createLoadDataParams( |
| + String data, String mimeType, boolean isBase64Encoded) { |
| + return createLoadDataParams(data, mimeType, isBase64Encoded, DATA_URL_DEFAULT_CHARSET); |
| + } |
| + |
| + /** |
| * Helper method to create a LoadUrlParams object for data url. |
| * @param data Data to be loaded. |
| * @param mimeType Mime type of the data. |
| * @param isBase64Encoded True if the data is encoded in Base 64 format. |
| + * @param charset The character set for the data. |
| */ |
| public static LoadUrlParams createLoadDataParams( |
| - String data, String mimeType, boolean isBase64Encoded) { |
| + String data, String mimeType, boolean isBase64Encoded, String charset) { |
| StringBuilder dataUrl = new StringBuilder("data:"); |
| dataUrl.append(mimeType); |
| + dataUrl.append(";charset=" + charset); |
|
joth
2012/12/14 18:02:51
-AIUI the charset is spurious if the mimetype is n
benm (inactive)
2012/12/14 18:13:58
Good point. I think the charset is considered a pa
|
| if (isBase64Encoded) { |
| dataUrl.append(";base64"); |
| } |
| @@ -80,7 +98,7 @@ public class LoadUrlParams { |
| /** |
| * Helper method to create a LoadUrlParams object for data url with base |
| - * and virtual url. |
| + * and virtual url. Defaults to US-ASCII charset, as per RFC2397. |
| * @param data Data to be loaded. |
| * @param mimeType Mime type of the data. |
| * @param isBase64Encoded True if the data is encoded in Base 64 format. |
| @@ -94,7 +112,28 @@ public class LoadUrlParams { |
| public static LoadUrlParams createLoadDataParamsWithBaseUrl( |
| String data, String mimeType, boolean isBase64Encoded, |
| String baseUrl, String historyUrl) { |
| - LoadUrlParams params = createLoadDataParams(data, mimeType, isBase64Encoded); |
| + return createLoadDataParamsWithBaseUrl(data, mimeType, isBase64Encoded, |
| + baseUrl, historyUrl, DATA_URL_DEFAULT_CHARSET); |
| + } |
| + |
| + /** |
| + * Helper method to create a LoadUrlParams object for data url with base |
| + * and virtual url. |
| + * @param data Data to be loaded. |
| + * @param mimeType Mime type of the data. |
| + * @param isBase64Encoded True if the data is encoded in Base 64 format. |
| + * @param baseUrl Base url of this data load. Note that for WebView compatibility, |
| + * baseUrl and historyUrl are ignored if this is a data: url. |
| + * Defaults to about:blank if null. |
| + * @param historyUrl History url for this data load. Note that for WebView compatibility, |
| + * this is ignored if baseUrl is a data: url. Defaults to about:blank |
| + * if null. |
| + * @param charset The character set for the data. |
| + */ |
| + public static LoadUrlParams createLoadDataParamsWithBaseUrl( |
| + String data, String mimeType, boolean isBase64Encoded, |
| + String baseUrl, String historyUrl, String charset) { |
| + LoadUrlParams params = createLoadDataParams(data, mimeType, isBase64Encoded, charset); |
| // For WebView compatibility, when the base URL has the 'data:' |
| // scheme, we treat it as a regular data URL load and skip setting |
| // baseUrl and historyUrl. |