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

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

Issue 84703003: Allow data URL > 2MB for loadDataWithBaseURL (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 1 month 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
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 ba9619377f41b20f520741413c33d21838950125..1790b5186a91ad88a19c25f601cd8a512605b655 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
@@ -39,6 +39,7 @@ public class LoadUrlParams {
int mUaOverrideOption;
private Map<String, String> mExtraHeaders;
byte[] mPostData;
+ String mDataForDataUrl;
String mBaseUrlForDataUrl;
String mVirtualUrlForDataUrl;
boolean mCanLoadLocalResources;
@@ -52,6 +53,7 @@ public class LoadUrlParams {
mTransitionType = PageTransitionTypes.PAGE_TRANSITION_LINK;
mUaOverrideOption = UA_OVERRIDE_INHERIT;
mPostData = null;
+ mDataForDataUrl = null;
mBaseUrlForDataUrl = null;
mVirtualUrlForDataUrl = null;
}
@@ -106,42 +108,19 @@ public class LoadUrlParams {
* @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.
- */
- public static LoadUrlParams createLoadDataParamsWithBaseUrl(
- String data, String mimeType, boolean isBase64Encoded,
- String baseUrl, String historyUrl) {
- return createLoadDataParamsWithBaseUrl(data, mimeType, isBase64Encoded,
- baseUrl, historyUrl, null);
- }
-
- /**
- * 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. Pass null if the mime type
* does not require a special charset.
*/
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.
- // TODO(joth): we should just append baseURL and historyURL here, and move the
- // WebView specific transform up to a wrapper factory function in android_webview/.
- if (baseUrl == null || !baseUrl.toLowerCase().startsWith("data:")) {
- params.setBaseUrlForDataUrl(baseUrl != null ? baseUrl : "about:blank");
- params.setVirtualUrlForDataUrl(historyUrl != null ? historyUrl : "about:blank");
- }
+ // This method is only used in WebView. For backward compatibility, data: base URLs
+ // should never be passed in here, and instead handled as per loadData() call.
+ assert !baseUrl.startsWith("data:");
+ LoadUrlParams params = createLoadDataParams("", mimeType, isBase64Encoded, charset);
+ params.mDataForDataUrl = data;
+ params.setBaseUrlForDataUrl(baseUrl);
+ params.setVirtualUrlForDataUrl(historyUrl);
return params;
}
@@ -274,15 +253,6 @@ public class LoadUrlParams {
return mLoadUrlType;
}
- public boolean isBaseUrlDataScheme() {
- // If there's no base url set, but this is a data load then
- // treat the scheme as data:.
- if (mBaseUrlForDataUrl == null && mLoadUrlType == LOAD_TYPE_DATA) {
- return true;
- }
- return nativeIsDataScheme(mBaseUrlForDataUrl);
- }
-
@SuppressWarnings("unused")
@CalledByNative
private static void initializeConstants(
@@ -299,10 +269,4 @@ public class LoadUrlParams {
UA_OVERRIDE_FALSE = ua_override_false;
UA_OVERRIDE_TRUE = ua_override_true;
}
-
- /**
- * Parses |url| as a GURL on the native side, and
- * returns true if it's scheme is data:.
- */
- private static native boolean nativeIsDataScheme(String url);
}

Powered by Google App Engine
This is Rietveld 408576698