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

Side by Side 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: fix joth's comments. 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « android_webview/javatests/src/org/chromium/android_webview/test/AndroidWebViewTestBase.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.content.browser; 5 package org.chromium.content.browser;
6 6
7 import org.chromium.base.CalledByNative; 7 import org.chromium.base.CalledByNative;
8 import org.chromium.base.JNINamespace; 8 import org.chromium.base.JNINamespace;
9 9
10 import java.util.Map; 10 import java.util.Map;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 mVirtualUrlForDataUrl = null; 56 mVirtualUrlForDataUrl = null;
57 } 57 }
58 58
59 /** 59 /**
60 * Helper method to create a LoadUrlParams object for data url. 60 * Helper method to create a LoadUrlParams object for data url.
61 * @param data Data to be loaded. 61 * @param data Data to be loaded.
62 * @param mimeType Mime type of the data. 62 * @param mimeType Mime type of the data.
63 * @param isBase64Encoded True if the data is encoded in Base 64 format. 63 * @param isBase64Encoded True if the data is encoded in Base 64 format.
64 */ 64 */
65 public static LoadUrlParams createLoadDataParams( 65 public static LoadUrlParams createLoadDataParams(
66 String data, String mimeType, boolean isBase64Encoded) { 66 String data, String mimeType, boolean isBase64Encoded) {
67 return createLoadDataParams(data, mimeType, isBase64Encoded, null);
68 }
69
70 /**
71 * Helper method to create a LoadUrlParams object for data url.
72 * @param data Data to be loaded.
73 * @param mimeType Mime type of the data.
74 * @param isBase64Encoded True if the data is encoded in Base 64 format.
75 * @param charset The character set for the data. Pass null if the mime type
76 * does not require a special charset.
77 */
78 public static LoadUrlParams createLoadDataParams(
79 String data, String mimeType, boolean isBase64Encoded, String charse t) {
67 StringBuilder dataUrl = new StringBuilder("data:"); 80 StringBuilder dataUrl = new StringBuilder("data:");
68 dataUrl.append(mimeType); 81 dataUrl.append(mimeType);
82 if (charset != null && !charset.isEmpty()) {
83 dataUrl.append(";charset=" + charset);
84 }
69 if (isBase64Encoded) { 85 if (isBase64Encoded) {
70 dataUrl.append(";base64"); 86 dataUrl.append(";base64");
71 } 87 }
72 dataUrl.append(","); 88 dataUrl.append(",");
73 dataUrl.append(data); 89 dataUrl.append(data);
74 90
75 LoadUrlParams params = new LoadUrlParams(dataUrl.toString()); 91 LoadUrlParams params = new LoadUrlParams(dataUrl.toString());
76 params.setLoadType(LoadUrlParams.LOAD_TYPE_DATA); 92 params.setLoadType(LoadUrlParams.LOAD_TYPE_DATA);
77 params.setTransitionType(ContentViewCore.PAGE_TRANSITION_TYPED); 93 params.setTransitionType(ContentViewCore.PAGE_TRANSITION_TYPED);
78 return params; 94 return params;
79 } 95 }
80 96
81 /** 97 /**
82 * Helper method to create a LoadUrlParams object for data url with base 98 * Helper method to create a LoadUrlParams object for data url with base
83 * and virtual url. 99 * and virtual url.
84 * @param data Data to be loaded. 100 * @param data Data to be loaded.
85 * @param mimeType Mime type of the data. 101 * @param mimeType Mime type of the data.
86 * @param isBase64Encoded True if the data is encoded in Base 64 format. 102 * @param isBase64Encoded True if the data is encoded in Base 64 format.
87 * @param baseUrl Base url of this data load. Note that for WebView compatib ility, 103 * @param baseUrl Base url of this data load. Note that for WebView compatib ility,
88 * baseUrl and historyUrl are ignored if this is a data: url. 104 * baseUrl and historyUrl are ignored if this is a data: url.
89 * Defaults to about:blank if null. 105 * Defaults to about:blank if null.
90 * @param historyUrl History url for this data load. Note that for WebView c ompatibility, 106 * @param historyUrl History url for this data load. Note that for WebView c ompatibility,
91 * this is ignored if baseUrl is a data: url. Defaults to about:blank 107 * this is ignored if baseUrl is a data: url. Defaults to about:blank
92 * if null. 108 * if null.
93 */ 109 */
94 public static LoadUrlParams createLoadDataParamsWithBaseUrl( 110 public static LoadUrlParams createLoadDataParamsWithBaseUrl(
95 String data, String mimeType, boolean isBase64Encoded, 111 String data, String mimeType, boolean isBase64Encoded,
96 String baseUrl, String historyUrl) { 112 String baseUrl, String historyUrl) {
97 LoadUrlParams params = createLoadDataParams(data, mimeType, isBase64Enco ded); 113 return createLoadDataParamsWithBaseUrl(data, mimeType, isBase64Encoded,
114 baseUrl, historyUrl, null);
115 }
116
117 /**
118 * Helper method to create a LoadUrlParams object for data url with base
119 * and virtual url.
120 * @param data Data to be loaded.
121 * @param mimeType Mime type of the data.
122 * @param isBase64Encoded True if the data is encoded in Base 64 format.
123 * @param baseUrl Base url of this data load. Note that for WebView compatib ility,
124 * baseUrl and historyUrl are ignored if this is a data: url.
125 * Defaults to about:blank if null.
126 * @param historyUrl History url for this data load. Note that for WebView c ompatibility,
127 * this is ignored if baseUrl is a data: url. Defaults to about:blank
128 * if null.
129 * @param charset The character set for the data. Pass null if the mime type
130 * does not require a special charset.
131 */
132 public static LoadUrlParams createLoadDataParamsWithBaseUrl(
133 String data, String mimeType, boolean isBase64Encoded,
134 String baseUrl, String historyUrl, String charset) {
135 LoadUrlParams params = createLoadDataParams(data, mimeType, isBase64Enco ded, charset);
98 // For WebView compatibility, when the base URL has the 'data:' 136 // For WebView compatibility, when the base URL has the 'data:'
99 // scheme, we treat it as a regular data URL load and skip setting 137 // scheme, we treat it as a regular data URL load and skip setting
100 // baseUrl and historyUrl. 138 // baseUrl and historyUrl.
139 // TODO(joth): we should just append baseURL and historyURL here, and mo ve the
140 // WebView specific transform up to a wrapper factory function in androi d_webview/.
101 if (baseUrl == null || !baseUrl.toLowerCase().startsWith("data:")) { 141 if (baseUrl == null || !baseUrl.toLowerCase().startsWith("data:")) {
102 params.setBaseUrlForDataUrl(baseUrl != null ? baseUrl : "about:blank "); 142 params.setBaseUrlForDataUrl(baseUrl != null ? baseUrl : "about:blank ");
103 params.setVirtualUrlForDataUrl(historyUrl != null ? historyUrl : "ab out:blank"); 143 params.setVirtualUrlForDataUrl(historyUrl != null ? historyUrl : "ab out:blank");
104 } 144 }
105 return params; 145 return params;
106 } 146 }
107 147
108 /** 148 /**
109 * Helper method to create a LoadUrlParams object for an HTTP POST load. 149 * Helper method to create a LoadUrlParams object for an HTTP POST load.
110 * @param url URL of the load. 150 * @param url URL of the load.
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 UA_OVERRIDE_FALSE = ua_override_false; 292 UA_OVERRIDE_FALSE = ua_override_false;
253 UA_OVERRIDE_TRUE = ua_override_true; 293 UA_OVERRIDE_TRUE = ua_override_true;
254 } 294 }
255 295
256 /** 296 /**
257 * Parses |url| as a GURL on the native side, and 297 * Parses |url| as a GURL on the native side, and
258 * returns true if it's scheme is data:. 298 * returns true if it's scheme is data:.
259 */ 299 */
260 private static native boolean nativeIsDataScheme(String url); 300 private static native boolean nativeIsDataScheme(String url);
261 } 301 }
OLDNEW
« no previous file with comments | « android_webview/javatests/src/org/chromium/android_webview/test/AndroidWebViewTestBase.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698