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 |