summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java28
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java2
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java2
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java3
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappUrlBar.java2
-rw-r--r--chrome/android/javatests/src/org/chromium/chrome/browser/UrlUtilitiesTest.java38
-rw-r--r--chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappUrlBarTest.java4
-rw-r--r--chrome/browser/android/url_utilities.cc21
8 files changed, 55 insertions, 45 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java
index bbd359f..27ed1dd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java
@@ -147,30 +147,12 @@ public class UrlUtilities {
* @return Stripped-down String containing the essential bits of the URL, or the original URL if
* it fails to parse it.
*/
- public static String getOriginForDisplay(URI uri, boolean showScheme) {
- String scheme = uri.getScheme();
- String host = uri.getHost();
- int port = uri.getPort();
-
- String displayUrl;
- if (TextUtils.isEmpty(scheme) || TextUtils.isEmpty(host)) {
- displayUrl = uri.toString();
+ public static String formatUrlForSecurityDisplay(URI uri, boolean showScheme) {
+ if (showScheme) {
+ return nativeFormatUrlForSecurityDisplay(uri.toString());
} else {
- if (showScheme) {
- scheme += "://";
- } else {
- scheme = "";
- }
-
- if (port == -1 || (port == 80 && "http".equals(scheme))
- || (port == 443 && "https".equals(scheme))) {
- displayUrl = scheme + host;
- } else {
- displayUrl = scheme + host + ":" + port;
- }
+ return nativeFormatUrlForSecurityDisplayOmitScheme(uri.toString());
}
-
- return displayUrl;
}
/**
@@ -380,5 +362,7 @@ public class UrlUtilities {
boolean includePrivateRegistries);
public static native boolean nativeIsGoogleSearchUrl(String url);
public static native boolean nativeIsGoogleHomePageUrl(String url);
+ public static native String nativeFormatUrlForSecurityDisplay(String url);
+ public static native String nativeFormatUrlForSecurityDisplayOmitScheme(String url);
private static native String nativeFixupUrl(String url, String desiredTld);
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java b/chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java
index bd645fb..52cd08d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java
@@ -504,7 +504,7 @@ public class WebsiteSettingsPopup implements OnClickListener {
String originToDisplay;
try {
URI parsedUrl = new URI(mFullUrl);
- originToDisplay = UrlUtilities.getOriginForDisplay(parsedUrl, false);
+ originToDisplay = UrlUtilities.formatUrlForSecurityDisplay(parsedUrl, false);
} catch (URISyntaxException e) {
// The URL is invalid - just display the full URL.
originToDisplay = mFullUrl;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java
index eb5ce0a..e72e863 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java
@@ -68,7 +68,7 @@ public class MediaSessionTabHelper {
}
String origin = mTab.getUrl();
try {
- origin = UrlUtilities.getOriginForDisplay(new URI(origin), true);
+ origin = UrlUtilities.formatUrlForSecurityDisplay(new URI(origin), true);
} catch (URISyntaxException e) {
Log.e(TAG, "Unable to parse the origin from the URL. "
+ "Showing the full URL instead.");
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
index 3b8915a..514b5ed 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
@@ -131,7 +131,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
Bundle fragmentArgs = new Bundle();
// TODO(mvanouwerkerk): Define a pure getOrigin method in UrlUtilities that is the
// equivalent of the call below, because this is perfectly fine for non-display purposes.
- String origin = UrlUtilities.getOriginForDisplay(URI.create(url), true /* schowScheme */);
+ String origin =
+ UrlUtilities.formatUrlForSecurityDisplay(URI.create(url), true /* showScheme */);
fragmentArgs.putString(SingleWebsitePreferences.EXTRA_ORIGIN, origin);
return fragmentArgs;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappUrlBar.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappUrlBar.java
index 48874c2..3c080a6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappUrlBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappUrlBar.java
@@ -162,7 +162,7 @@ public class WebappUrlBar extends FrameLayout implements View.OnLayoutChangeList
boolean showScheme = mCurrentIconResource == 0;
String displayUrl = originalUrl;
if (uri != null) {
- String shortenedUrl = UrlUtilities.getOriginForDisplay(uri, showScheme);
+ String shortenedUrl = UrlUtilities.formatUrlForSecurityDisplay(uri, showScheme);
if (!TextUtils.isEmpty(shortenedUrl)) displayUrl = shortenedUrl;
}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/UrlUtilitiesTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/UrlUtilitiesTest.java
index 59f6da8..3d9bae6 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/UrlUtilitiesTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/UrlUtilitiesTest.java
@@ -4,14 +4,14 @@
package org.chromium.chrome.browser;
-import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.base.test.util.Feature;
+import org.chromium.content.browser.test.NativeLibraryTestBase;
import java.net.URI;
-public class UrlUtilitiesTest extends InstrumentationTestCase {
+public class UrlUtilitiesTest extends NativeLibraryTestBase {
@SmallTest
public void testIsAcceptedScheme() {
assertTrue(UrlUtilities.isAcceptedScheme("about:awesome"));
@@ -73,36 +73,40 @@ public class UrlUtilitiesTest extends InstrumentationTestCase {
@SmallTest
@Feature({"Webapps"})
- public void testGetOriginForDisplay() {
+ public void testFormatUrlForSecurityDisplay() {
+ loadNativeLibraryNoBrowserProcess();
+
URI uri;
uri = URI.create("http://chopped.com/is/awesome");
- assertEquals("http://chopped.com", UrlUtilities.getOriginForDisplay(uri, true));
- assertEquals("chopped.com", UrlUtilities.getOriginForDisplay(uri, false));
+ assertEquals("http://chopped.com", UrlUtilities.formatUrlForSecurityDisplay(uri, true));
+ assertEquals("chopped.com", UrlUtilities.formatUrlForSecurityDisplay(uri, false));
uri = URI.create("http://lopped.com");
- assertEquals("http://lopped.com", UrlUtilities.getOriginForDisplay(uri, true));
- assertEquals("lopped.com", UrlUtilities.getOriginForDisplay(uri, false));
+ assertEquals("http://lopped.com", UrlUtilities.formatUrlForSecurityDisplay(uri, true));
+ assertEquals("lopped.com", UrlUtilities.formatUrlForSecurityDisplay(uri, false));
uri = URI.create("http://dropped.com?things");
- assertEquals("http://dropped.com", UrlUtilities.getOriginForDisplay(uri, true));
- assertEquals("dropped.com", UrlUtilities.getOriginForDisplay(uri, false));
+ assertEquals("http://dropped.com", UrlUtilities.formatUrlForSecurityDisplay(uri, true));
+ assertEquals("dropped.com", UrlUtilities.formatUrlForSecurityDisplay(uri, false));
uri = URI.create("http://dfalcant@stopped.com:1234");
- assertEquals("http://stopped.com:1234", UrlUtilities.getOriginForDisplay(uri, true));
- assertEquals("stopped.com:1234", UrlUtilities.getOriginForDisplay(uri, false));
+ assertEquals(
+ "http://stopped.com:1234", UrlUtilities.formatUrlForSecurityDisplay(uri, true));
+ assertEquals("stopped.com:1234", UrlUtilities.formatUrlForSecurityDisplay(uri, false));
uri = URI.create("http://dfalcant:secret@stopped.com:9999");
- assertEquals("http://stopped.com:9999", UrlUtilities.getOriginForDisplay(uri, true));
- assertEquals("stopped.com:9999", UrlUtilities.getOriginForDisplay(uri, false));
+ assertEquals(
+ "http://stopped.com:9999", UrlUtilities.formatUrlForSecurityDisplay(uri, true));
+ assertEquals("stopped.com:9999", UrlUtilities.formatUrlForSecurityDisplay(uri, false));
uri = URI.create("chrome://settings:443");
- assertEquals("chrome://settings:443", UrlUtilities.getOriginForDisplay(uri, true));
- assertEquals("settings:443", UrlUtilities.getOriginForDisplay(uri, false));
+ assertEquals("chrome://settings:443", UrlUtilities.formatUrlForSecurityDisplay(uri, true));
+ assertEquals("chrome://settings:443", UrlUtilities.formatUrlForSecurityDisplay(uri, false));
uri = URI.create("about:blank");
- assertEquals("about:blank", UrlUtilities.getOriginForDisplay(uri, true));
- assertEquals("about:blank", UrlUtilities.getOriginForDisplay(uri, false));
+ assertEquals("about:blank", UrlUtilities.formatUrlForSecurityDisplay(uri, true));
+ assertEquals("about:blank", UrlUtilities.formatUrlForSecurityDisplay(uri, false));
}
@SmallTest
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappUrlBarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappUrlBarTest.java
index 0721b9f..48e9497 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappUrlBarTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappUrlBarTest.java
@@ -36,7 +36,7 @@ public class WebappUrlBarTest extends WebappActivityTestBase {
@MediumTest
@Feature({"Webapps"})
public void testUrlDisplay() {
- final String scheme = "somescheme://";
+ final String scheme = "https://";
final String host = "lorem.com";
final String path = "/stuff/and/things.html";
final String url = scheme + host + path;
@@ -49,7 +49,7 @@ public class WebappUrlBarTest extends WebappActivityTestBase {
ConnectionSecurityLevel.SECURITY_ERROR};
for (int i : securityLevels) {
- // http://crbug.com/297249
+ // TODO(palmer): http://crbug.com/297249
if (i == ConnectionSecurityLevel.SECURITY_POLICY_WARNING) continue;
mUrlBar.update(url, i);
diff --git a/chrome/browser/android/url_utilities.cc b/chrome/browser/android/url_utilities.cc
index a829025..27c9ed4 100644
--- a/chrome/browser/android/url_utilities.cc
+++ b/chrome/browser/android/url_utilities.cc
@@ -2,9 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <string>
+
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "components/google/core/browser/google_util.h"
+#include "components/url_formatter/elide_url.h"
#include "components/url_formatter/url_fixer.h"
#include "jni/UrlUtilities_jni.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
@@ -70,6 +73,24 @@ static jboolean IsGoogleSearchUrl(JNIEnv* env,
return google_util::IsGoogleSearchUrl(gurl);
}
+static ScopedJavaLocalRef<jstring> FormatUrlForSecurityDisplay(
+ JNIEnv* env,
+ const JavaParamRef<jclass>& clazz,
+ const JavaParamRef<jstring>& url) {
+ return base::android::ConvertUTF16ToJavaString(
+ env, url_formatter::FormatUrlForSecurityDisplay(
+ ConvertJavaStringToGURL(env, url), std::string()));
+}
+
+static ScopedJavaLocalRef<jstring> FormatUrlForSecurityDisplayOmitScheme(
+ JNIEnv* env,
+ const JavaParamRef<jclass>& clazz,
+ const JavaParamRef<jstring>& url) {
+ return base::android::ConvertUTF16ToJavaString(
+ env, url_formatter::FormatUrlForSecurityDisplayOmitScheme(
+ ConvertJavaStringToGURL(env, url), std::string()));
+}
+
static jboolean IsGoogleHomePageUrl(JNIEnv* env,
const JavaParamRef<jclass>& clazz,
const JavaParamRef<jstring>& url) {