Chromium Code Reviews| 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()) { | |
|
joth
2012/12/17 17:56:25
Do we like this style?
if (!"".equals(charset)) .
benm (inactive)
2012/12/17 18:00:44
Not sure there's an official convention, but that'
| |
| 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. |
|
joth
2012/12/17 17:56:25
Out of scope for this patch to change this, but co
benm (inactive)
2012/12/17 18:00:44
will do
| |
| 101 if (baseUrl == null || !baseUrl.toLowerCase().startsWith("data:")) { | 139 if (baseUrl == null || !baseUrl.toLowerCase().startsWith("data:")) { |
| 102 params.setBaseUrlForDataUrl(baseUrl != null ? baseUrl : "about:blank "); | 140 params.setBaseUrlForDataUrl(baseUrl != null ? baseUrl : "about:blank "); |
| 103 params.setVirtualUrlForDataUrl(historyUrl != null ? historyUrl : "ab out:blank"); | 141 params.setVirtualUrlForDataUrl(historyUrl != null ? historyUrl : "ab out:blank"); |
| 104 } | 142 } |
| 105 return params; | 143 return params; |
| 106 } | 144 } |
| 107 | 145 |
| 108 /** | 146 /** |
| 109 * Helper method to create a LoadUrlParams object for an HTTP POST load. | 147 * Helper method to create a LoadUrlParams object for an HTTP POST load. |
| 110 * @param url URL of the load. | 148 * @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; | 290 UA_OVERRIDE_FALSE = ua_override_false; |
| 253 UA_OVERRIDE_TRUE = ua_override_true; | 291 UA_OVERRIDE_TRUE = ua_override_true; |
| 254 } | 292 } |
| 255 | 293 |
| 256 /** | 294 /** |
| 257 * Parses |url| as a GURL on the native side, and | 295 * Parses |url| as a GURL on the native side, and |
| 258 * returns true if it's scheme is data:. | 296 * returns true if it's scheme is data:. |
| 259 */ | 297 */ |
| 260 private static native boolean nativeIsDataScheme(String url); | 298 private static native boolean nativeIsDataScheme(String url); |
| 261 } | 299 } |
| OLD | NEW |