Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(564)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java

Issue 2636103002: [WebAPKs] Show minibar when WebAPK navigates outside scope specified in Web Manifest (Closed)
Patch Set: Merge branch 'master' into minibar Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java
index 94889aaa34d5d74d11a03d84b135111c93cf1ccf..37cc00163ba9ed2b51667c195ac72a81421aef64 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.webapps;
import android.support.test.filters.MediumTest;
import org.chromium.base.test.util.Feature;
+import org.chromium.chrome.browser.tab.Tab;
import org.chromium.components.security_state.ConnectionSecurityLevel;
import org.chromium.content.browser.test.NativeLibraryTestBase;
@@ -16,6 +17,11 @@ import org.chromium.content.browser.test.NativeLibraryTestBase;
public class WebappVisibilityTest extends NativeLibraryTestBase {
private static final String WEBAPP_URL = "http://originalwebsite.com";
+ private static enum Type {
+ WEBAPP,
+ WEBAPK,
+ };
+
@Override
protected void setUp() throws Exception {
super.setUp();
@@ -25,51 +31,80 @@ public class WebappVisibilityTest extends NativeLibraryTestBase {
@MediumTest
@Feature({"Webapps"})
public void testShouldShowBrowserControls() {
- // Show browser controls for out-of-domain URLs.
- assertTrue(shouldShowBrowserControls(
- WEBAPP_URL, "http://notoriginalwebsite.com", ConnectionSecurityLevel.NONE));
- assertTrue(shouldShowBrowserControls(
- WEBAPP_URL, "http://otherwebsite.com", ConnectionSecurityLevel.NONE));
+ Type[] types = new Type[] {Type.WEBAPP, Type.WEBAPK};
+ for (Type type : types) {
+ boolean isWebApk = (type == Type.WEBAPK);
+
+ // Show browser controls for out-of-domain URLs.
+ assertTrue(shouldShowBrowserControls(WEBAPP_URL, "http://notoriginalwebsite.com",
+ ConnectionSecurityLevel.NONE, type));
+ assertTrue(shouldShowBrowserControls(
+ WEBAPP_URL, "http://otherwebsite.com", ConnectionSecurityLevel.NONE, type));
+
+ // Do not show browser controls for subpaths.
+ assertFalse(shouldShowBrowserControls(
+ WEBAPP_URL, WEBAPP_URL, ConnectionSecurityLevel.NONE, type));
+ assertFalse(shouldShowBrowserControls(
+ WEBAPP_URL, WEBAPP_URL + "/things.html", ConnectionSecurityLevel.NONE, type));
+ assertFalse(shouldShowBrowserControls(
+ WEBAPP_URL, WEBAPP_URL + "/stuff.html", ConnectionSecurityLevel.NONE, type));
- // Do not show browser controls for subdomains and private registries that are secure.
- assertFalse(shouldShowBrowserControls(
- WEBAPP_URL, "http://sub.originalwebsite.com", ConnectionSecurityLevel.NONE));
- assertFalse(shouldShowBrowserControls(
- WEBAPP_URL, "http://thing.originalwebsite.com", ConnectionSecurityLevel.NONE));
- assertFalse(
- shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL, ConnectionSecurityLevel.NONE));
- assertFalse(shouldShowBrowserControls(
- WEBAPP_URL, WEBAPP_URL + "/things.html", ConnectionSecurityLevel.NONE));
- assertFalse(shouldShowBrowserControls(
- WEBAPP_URL, WEBAPP_URL + "/stuff.html", ConnectionSecurityLevel.NONE));
+ // For WebAPKs but not Webapps show browser controls for subdomains and private
+ // registries that are secure.
+ assertEquals(isWebApk,
+ shouldShowBrowserControls(WEBAPP_URL, "http://sub.originalwebsite.com",
+ ConnectionSecurityLevel.NONE, type));
+ assertEquals(isWebApk,
+ shouldShowBrowserControls(WEBAPP_URL, "http://thing.originalwebsite.com",
+ ConnectionSecurityLevel.NONE, type));
- // Do not show browser controls when URL is not available yet.
- assertFalse(shouldShowBrowserControls(WEBAPP_URL, "", ConnectionSecurityLevel.NONE));
+ // Do not show browser controls when URL is not available yet.
+ assertFalse(
+ shouldShowBrowserControls(WEBAPP_URL, "", ConnectionSecurityLevel.NONE, type));
- // Show browser controls for non secure URLs.
- assertTrue(shouldShowBrowserControls(WEBAPP_URL, "http://sub.originalwebsite.com",
- ConnectionSecurityLevel.SECURITY_WARNING));
- assertTrue(shouldShowBrowserControls(
- WEBAPP_URL, "http://notoriginalwebsite.com", ConnectionSecurityLevel.DANGEROUS));
- assertTrue(shouldShowBrowserControls(
- WEBAPP_URL, "http://otherwebsite.com", ConnectionSecurityLevel.DANGEROUS));
- assertTrue(shouldShowBrowserControls(
- WEBAPP_URL, "http://thing.originalwebsite.com", ConnectionSecurityLevel.DANGEROUS));
- assertTrue(shouldShowBrowserControls(
- WEBAPP_URL, WEBAPP_URL, ConnectionSecurityLevel.SECURITY_WARNING));
- assertTrue(shouldShowBrowserControls(
- WEBAPP_URL, WEBAPP_URL + "/things.html", ConnectionSecurityLevel.SECURITY_WARNING));
- assertTrue(shouldShowBrowserControls(
- WEBAPP_URL, WEBAPP_URL + "/stuff.html", ConnectionSecurityLevel.SECURITY_WARNING));
+ // Show browser controls for non secure URLs.
+ assertTrue(shouldShowBrowserControls(
+ WEBAPP_URL, WEBAPP_URL, ConnectionSecurityLevel.SECURITY_WARNING, type));
+ assertTrue(shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL + "/things.html",
+ ConnectionSecurityLevel.SECURITY_WARNING, type));
+ assertTrue(shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL + "/stuff.html",
+ ConnectionSecurityLevel.SECURITY_WARNING, type));
+ assertTrue(shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL + "/stuff.html",
+ ConnectionSecurityLevel.DANGEROUS, type));
+ assertTrue(shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL + "/things.html",
+ ConnectionSecurityLevel.DANGEROUS, type));
+ assertTrue(shouldShowBrowserControls(WEBAPP_URL, "http://sub.originalwebsite.com",
+ ConnectionSecurityLevel.SECURITY_WARNING, type));
+ assertTrue(shouldShowBrowserControls(
+ WEBAPP_URL, "http://notoriginalwebsite.com", ConnectionSecurityLevel.DANGEROUS, type));
+ assertTrue(shouldShowBrowserControls(
+ WEBAPP_URL, "http://otherwebsite.com", ConnectionSecurityLevel.DANGEROUS, type));
+ assertTrue(shouldShowBrowserControls(
+ WEBAPP_URL, "http://thing.originalwebsite.com", ConnectionSecurityLevel.DANGEROUS, type));
+ }
}
/**
- * Convenience wrapper for
- * WebappDelegateFactory.BrowserControlsDelegate#shouldShowBrowserControls()
+ * Calls either WebappBrowserControlsDelegate#shouldShowBrowserControls() or
+ * WebApkBrowserControlsDelegate#shouldShowBrowserControls() based on the type.
+ * @param webappStartUrlOrScopeUrl Web Manifest start URL when {@link type} == Type.WEBAPP and
+ * the Web Manifest scope URL otherwise.
+ * @param url The current page URL
+ * @param type
*/
private static boolean shouldShowBrowserControls(
- String webappStartUrl, String url, int securityLevel) {
- return WebappDelegateFactory.BrowserControlsDelegate.shouldShowBrowserControls(
- webappStartUrl, url, securityLevel);
+ String webappStartUrlOrScopeUrl, String url, int securityLevel, Type type) {
+ WebappBrowserControlsDelegate delegate;
+ WebappInfo info;
+ if (type == Type.WEBAPP) {
+ delegate = new WebappBrowserControlsDelegate(null, new Tab(0, false, null));
+ info = WebappInfo.create(
+ "", webappStartUrlOrScopeUrl, null, null, null, null, 0, 0, 0, 0, 0, false);
+ } else {
+ delegate = new WebApkBrowserControlsDelegate(null, new Tab(0, false, null));
+ info = WebApkInfo.create("", "", webappStartUrlOrScopeUrl, null, null, null, 0, 0, 0, 0,
+ 0, "", 0, null, "", null);
+ }
+ return delegate.shouldShowBrowserControls(info, url, securityLevel);
}
}

Powered by Google App Engine
This is Rietveld 408576698