Index: components/url_formatter/android/java/src/org/chromium/components/url_formatter/UrlFormatter.java |
diff --git a/components/url_formatter/android/java/src/org/chromium/components/url_formatter/UrlFormatter.java b/components/url_formatter/android/java/src/org/chromium/components/url_formatter/UrlFormatter.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..98c394e171cb61b992dccbcae89efd445d0960b2 |
--- /dev/null |
+++ b/components/url_formatter/android/java/src/org/chromium/components/url_formatter/UrlFormatter.java |
@@ -0,0 +1,90 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.components.url_formatter; |
+ |
+import android.text.TextUtils; |
+ |
+import org.chromium.base.annotations.JNINamespace; |
+ |
+import java.net.URI; |
+ |
+/** |
+ * Wrapper for utilities in url_formatter. |
+ */ |
+@JNINamespace("url_formatter::android") |
+public final class UrlFormatter { |
+ /** |
+ * Refer to url_formatter::FixupURL. |
+ * |
+ * Given a URL-like string, returns a real URL or null. For example: |
+ * - "google.com" -> "http://google.com/" |
+ * - "about:" -> "chrome://version/" |
+ * - "//mail.google.com:/" -> "file:///mail.google.com:/" |
+ * - "..." -> null |
+ */ |
+ public static String fixupUrl(String uri) { |
+ return TextUtils.isEmpty(uri) ? null : nativeFixupUrl(uri); |
+ } |
+ |
+ /** |
+ * Builds a String representation of <code>uri</code> suitable for display to the user, omitting |
+ * the scheme if it is "http://", the username and password, and trailing slash on a bare |
+ * hostname. |
+ * |
+ * Some examples: |
+ * - "http://user:password@example.com/" -> "example.com" |
+ * - "https://example.com/path" -> "https://example.com/path" |
+ * - "http://www.xn--frgbolaget-q5a.se" -> "www.färgbolaget.se" |
+ * |
+ * The IDN hostname is turned to Unicode if the Unicode representation is deemed safe. |
+ * For more information, see <code>url_formatter::FormatUrl(const GURL&)</code>. |
+ * |
+ * @param uri URI to format. |
+ * @return Formatted URL. |
+ */ |
+ public static String formatUrlForDisplay(URI uri) { |
+ return formatUrlForDisplay(uri.toString()); |
+ } |
+ |
+ /** |
+ * @see formatUrlForDisplay(java.net.URI) |
+ */ |
+ public static String formatUrlForDisplay(String uri) { |
+ return nativeFormatUrlForDisplay(uri); |
+ } |
+ |
+ /** |
+ * Builds a String that strips down the URL to its scheme, host, and port. |
+ * @param uri URI to break down. |
+ * @param showScheme Whether or not to show the scheme. If the URL can't be parsed, this value |
+ * is ignored. |
+ * @return Stripped-down String containing the essential bits of the URL, or the original URL if |
+ * it fails to parse it. |
+ */ |
+ public static String formatUrlForSecurityDisplay(URI uri, boolean showScheme) { |
+ return formatUrlForSecurityDisplay(uri.toString(), showScheme); |
+ } |
+ |
+ /** |
+ * Builds a String that strips down |uri| to its scheme, host, and port. |
+ * @param uri The URI to break down. |
+ * @param showScheme Whether or not to show the scheme. If the URL can't be parsed, this value |
+ * is ignored. |
+ * @return Stripped-down String containing the essential bits of the URL, or the original URL if |
+ * it fails to parse it. |
+ */ |
+ public static String formatUrlForSecurityDisplay(String uri, boolean showScheme) { |
+ if (showScheme) { |
+ return nativeFormatUrlForSecurityDisplay(uri); |
+ } else { |
+ return nativeFormatUrlForSecurityDisplayOmitScheme(uri); |
+ } |
+ } |
+ |
+ private static native String nativeFixupUrl(String url); |
+ private static native String nativeFormatUrlForDisplay(String url); |
+ private static native String nativeFormatUrlForSecurityDisplay(String url); |
+ private static native String nativeFormatUrlForSecurityDisplayOmitScheme(String url); |
+} |