Compare commits

...

2 Commits

@ -3600,7 +3600,7 @@ public class MessageHelper {
MimeTextPart p1 = parts.get(p); MimeTextPart p1 = parts.get(p);
MimeTextPart p2 = parts.get(p + 1); MimeTextPart p2 = parts.get(p + 1);
// https://bugzilla.mozilla.org/show_bug.cgi?id=1374149 // https://bugzilla.mozilla.org/show_bug.cgi?id=1374149
if (!"ISO-2022-JP".equalsIgnoreCase(p1.charset) && if (!("ISO-2022-JP".equalsIgnoreCase(p1.charset) && "B".equalsIgnoreCase(p1.encoding)) &&
p1.charset != null && p1.charset.equalsIgnoreCase(p2.charset) && p1.charset != null && p1.charset.equalsIgnoreCase(p2.charset) &&
p1.encoding != null && p1.encoding.equalsIgnoreCase(p2.encoding) && p1.encoding != null && p1.encoding.equalsIgnoreCase(p2.encoding) &&
p1.text != null && !p1.text.endsWith("=")) { p1.text != null && !p1.text.endsWith("=")) {

@ -419,31 +419,44 @@ public class UriHelper {
path = path.toLowerCase(Locale.ROOT); path = path.toLowerCase(Locale.ROOT);
boolean first = "www.facebook.com".equals(host); boolean first = "www.facebook.com".equals(host);
for (String key : url.getQueryParameterNames()) { String q = url.getEncodedQuery();
// https://en.wikipedia.org/wiki/UTM_parameters if (q != null) {
// https://docs.oracle.com/en/cloud/saas/marketing/eloqua-user/Help/EloquaAsynchronousTrackingScripts/EloquaTrackingParameters.htm StringBuilder sb = new StringBuilder();
String lkey = key.toLowerCase(Locale.ROOT); for (String kv : q.split("&")) {
if (PARANOID_QUERY.contains(lkey) || int eq = kv.indexOf('=');
lkey.startsWith("utm_") || String key = (eq < 0 ? kv : kv.substring(0, eq));
lkey.startsWith("elq") || String value = (eq < 0 ? null : kv.substring(eq + 1));
((host != null && host.endsWith("facebook.com")) &&
!first && // https://en.wikipedia.org/wiki/UTM_parameters
FACEBOOK_WHITELIST_PATH.contains(path) && // https://docs.oracle.com/en/cloud/saas/marketing/eloqua-user/Help/EloquaAsynchronousTrackingScripts/EloquaTrackingParameters.htm
!FACEBOOK_WHITELIST_QUERY.contains(lkey)) || String lkey = key.toLowerCase(Locale.ROOT);
("store.steampowered.com".equals(host) && if (PARANOID_QUERY.contains(lkey) ||
"snr".equals(lkey))) lkey.startsWith("utm_") ||
changed = true; lkey.startsWith("elq") ||
else if (!TextUtils.isEmpty(key)) ((host != null && host.endsWith("facebook.com")) &&
for (String value : url.getQueryParameters(key)) { !first &&
Log.i("Query " + key + "=" + value); FACEBOOK_WHITELIST_PATH.contains(path) &&
Uri suri = Uri.parse(value); !FACEBOOK_WHITELIST_QUERY.contains(lkey)) ||
("store.steampowered.com".equals(host) &&
"snr".equals(lkey)))
changed = true;
else if (!TextUtils.isEmpty(key)) {
Uri suri = Uri.parse(key);
if (suri != null && isHyperLink(suri)) { if (suri != null && isHyperLink(suri)) {
Uri s = sanitize(context, suri); Uri s = sanitize(context, suri);
return (s == null ? suri : s); return (s == null ? suri : s);
} }
builder.appendQueryParameter(key, value); if (sb.length() > 0)
sb.append('&');
sb.append(key);
if (value != null) {
sb.append('=').append(value);
}
} }
first = false; first = false;
}
if (sb.length() > 0)
builder.encodedQuery(sb.toString());
} }
return (changed ? builder.build() : null); return (changed ? builder.build() : null);

Loading…
Cancel
Save