| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |