Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(405)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java

Issue 11571008: [Android] Add API for specifying a charset for data Urls. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
« no previous file with comments | « android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698