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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java

Issue 2837873002: Finch kill switch feature for background tab. (Closed)
Patch Set: Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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.chrome.browser.customtabs; 5 package org.chromium.chrome.browser.customtabs;
6 6
7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E ND_DEVICE; 7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E ND_DEVICE;
8 8
9 import android.app.Activity; 9 import android.app.Activity;
10 import android.app.Application; 10 import android.app.Application;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 import org.chromium.base.ThreadUtils; 50 import org.chromium.base.ThreadUtils;
51 import org.chromium.base.library_loader.LibraryLoader; 51 import org.chromium.base.library_loader.LibraryLoader;
52 import org.chromium.base.library_loader.LibraryProcessType; 52 import org.chromium.base.library_loader.LibraryProcessType;
53 import org.chromium.base.test.util.CallbackHelper; 53 import org.chromium.base.test.util.CallbackHelper;
54 import org.chromium.base.test.util.CommandLineFlags; 54 import org.chromium.base.test.util.CommandLineFlags;
55 import org.chromium.base.test.util.DisabledTest; 55 import org.chromium.base.test.util.DisabledTest;
56 import org.chromium.base.test.util.Restriction; 56 import org.chromium.base.test.util.Restriction;
57 import org.chromium.base.test.util.RetryOnFailure; 57 import org.chromium.base.test.util.RetryOnFailure;
58 import org.chromium.chrome.R; 58 import org.chromium.chrome.R;
59 import org.chromium.chrome.browser.ChromeActivity; 59 import org.chromium.chrome.browser.ChromeActivity;
60 import org.chromium.chrome.browser.ChromeFeatureList;
60 import org.chromium.chrome.browser.ChromeSwitches; 61 import org.chromium.chrome.browser.ChromeSwitches;
61 import org.chromium.chrome.browser.ChromeTabbedActivity; 62 import org.chromium.chrome.browser.ChromeTabbedActivity;
62 import org.chromium.chrome.browser.IntentHandler; 63 import org.chromium.chrome.browser.IntentHandler;
63 import org.chromium.chrome.browser.TabsOpenedFromExternalAppTest; 64 import org.chromium.chrome.browser.TabsOpenedFromExternalAppTest;
64 import org.chromium.chrome.browser.WarmupManager; 65 import org.chromium.chrome.browser.WarmupManager;
65 import org.chromium.chrome.browser.appmenu.AppMenuHandler; 66 import org.chromium.chrome.browser.appmenu.AppMenuHandler;
66 import org.chromium.chrome.browser.document.ChromeLauncherActivity; 67 import org.chromium.chrome.browser.document.ChromeLauncherActivity;
67 import org.chromium.chrome.browser.firstrun.FirstRunStatus; 68 import org.chromium.chrome.browser.firstrun.FirstRunStatus;
68 import org.chromium.chrome.browser.metrics.PageLoadMetrics; 69 import org.chromium.chrome.browser.metrics.PageLoadMetrics;
69 import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler; 70 import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler;
(...skipping 16 matching lines...) Expand all
86 import org.chromium.content.browser.test.util.CriteriaHelper; 87 import org.chromium.content.browser.test.util.CriteriaHelper;
87 import org.chromium.content.browser.test.util.DOMUtils; 88 import org.chromium.content.browser.test.util.DOMUtils;
88 import org.chromium.content.browser.test.util.JavaScriptUtils; 89 import org.chromium.content.browser.test.util.JavaScriptUtils;
89 import org.chromium.content_public.browser.LoadUrlParams; 90 import org.chromium.content_public.browser.LoadUrlParams;
90 import org.chromium.content_public.browser.WebContentsObserver; 91 import org.chromium.content_public.browser.WebContentsObserver;
91 import org.chromium.net.test.EmbeddedTestServer; 92 import org.chromium.net.test.EmbeddedTestServer;
92 import org.chromium.net.test.util.TestWebServer; 93 import org.chromium.net.test.util.TestWebServer;
93 import org.chromium.ui.mojom.WindowOpenDisposition; 94 import org.chromium.ui.mojom.WindowOpenDisposition;
94 95
95 import java.util.ArrayList; 96 import java.util.ArrayList;
97 import java.util.HashMap;
98 import java.util.Map;
96 import java.util.concurrent.Callable; 99 import java.util.concurrent.Callable;
97 import java.util.concurrent.TimeoutException; 100 import java.util.concurrent.TimeoutException;
98 import java.util.concurrent.atomic.AtomicBoolean; 101 import java.util.concurrent.atomic.AtomicBoolean;
99 import java.util.concurrent.atomic.AtomicReference; 102 import java.util.concurrent.atomic.AtomicReference;
100 103
101 /** 104 /**
102 * Instrumentation tests for app menu, context menu, and toolbar of a {@link Cus tomTabActivity}. 105 * Instrumentation tests for app menu, context menu, and toolbar of a {@link Cus tomTabActivity}.
103 */ 106 */
104 public class CustomTabActivityTest extends CustomTabActivityTestBase { 107 public class CustomTabActivityTest extends CustomTabActivityTestBase {
105 private static final int MAX_MENU_CUSTOM_ITEMS = 5; 108 private static final int MAX_MENU_CUSTOM_ITEMS = 5;
(...skipping 1697 matching lines...) Expand 10 before | Expand all | Expand 10 after
1803 * Test whether the url shown on hidden tab gets updated from about:blank wh en it 1806 * Test whether the url shown on hidden tab gets updated from about:blank wh en it
1804 * completes in the background. 1807 * completes in the background.
1805 */ 1808 */
1806 @SmallTest 1809 @SmallTest
1807 @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) 1810 @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
1808 @RetryOnFailure 1811 @RetryOnFailure
1809 public void testHiddenTabCorrectUrl() throws Exception { 1812 public void testHiddenTabCorrectUrl() throws Exception {
1810 testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TA B); 1813 testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TA B);
1811 } 1814 }
1812 1815
1816 /**
1817 * Test that a hidden tab speculation is executed as a prerender if the |CCT _BACKGROUND_TAB|
1818 * feature is disabled.
1819 **/
1820 @SmallTest
1821 @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
1822 @RetryOnFailure
1823 public void testHiddenTabDisabled() throws Exception {
1824 // One should be able to use @Features instead of calling
1825 // ChromeFeatureList.setTestFeatures, but it doesn't appear to be effect ive.
1826 // (perhaps a restriction due to running on Android?)
1827 Map<String, Boolean> features = new HashMap<>();
1828 features.put(ChromeFeatureList.CCT_BACKGROUND_TAB, false);
1829 ChromeFeatureList.setTestFeatures(features);
Benoit L 2017/04/24 16:18:00 Should this be reset in a finally block? Seems th
1830 testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TA B,
1831 CustomTabsConnection.SpeculationParams.PRERENDER);
1832 }
1833
1813 private void testSpeculateCorrectUrl(int speculationMode) throws Exception { 1834 private void testSpeculateCorrectUrl(int speculationMode) throws Exception {
1835 testSpeculateCorrectUrl(speculationMode, speculationMode);
1836 }
1837
1838 private void testSpeculateCorrectUrl(int requestedSpeculationMode, int usedS peculationMode)
1839 throws Exception {
1814 Context context = getInstrumentation().getTargetContext().getApplication Context(); 1840 Context context = getInstrumentation().getTargetContext().getApplication Context();
1815 final CustomTabsConnection connection = warmUpAndWait(); 1841 final CustomTabsConnection connection = warmUpAndWait();
1816 CustomTabsSessionToken token = CustomTabsSessionToken.createDummySession TokenForTesting(); 1842 CustomTabsSessionToken token = CustomTabsSessionToken.createDummySession TokenForTesting();
1817 connection.newSession(token); 1843 connection.newSession(token);
1818 connection.setSpeculationModeForSession(token, speculationMode); 1844 connection.setSpeculationModeForSession(token, requestedSpeculationMode) ;
1819 assertTrue(connection.mayLaunchUrl(token, Uri.parse(mTestPage), null, nu ll)); 1845 assertTrue(connection.mayLaunchUrl(token, Uri.parse(mTestPage), null, nu ll));
1820 ensureCompletedSpeculationForUrl(connection, mTestPage, speculationMode) ; 1846 ensureCompletedSpeculationForUrl(connection, mTestPage, usedSpeculationM ode);
1821 1847
1822 try { 1848 try {
1823 startCustomTabActivityWithIntent(CustomTabsTestUtils.createMinimalCu stomTabIntent( 1849 startCustomTabActivityWithIntent(CustomTabsTestUtils.createMinimalCu stomTabIntent(
1824 context, mTestPage)); 1850 context, mTestPage));
1825 } catch (InterruptedException e) { 1851 } catch (InterruptedException e) {
1826 fail(); 1852 fail();
1827 } 1853 }
1828 assertEquals(Uri.parse(mTestPage).getHost() + ":" + Uri.parse(mTestPage) .getPort(), 1854 assertEquals(Uri.parse(mTestPage).getHost() + ":" + Uri.parse(mTestPage) .getPort(),
1829 ((EditText) mActivity.findViewById(R.id.url_bar)).getText() 1855 ((EditText) mActivity.findViewById(R.id.url_bar)).getText()
1830 .toString()); 1856 .toString());
(...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after
2496 switch (speculationMode) { 2522 switch (speculationMode) {
2497 case CustomTabsConnection.SpeculationParams.PRERENDER: 2523 case CustomTabsConnection.SpeculationParams.PRERENDER:
2498 return "prerender"; 2524 return "prerender";
2499 case CustomTabsConnection.SpeculationParams.HIDDEN_TAB: 2525 case CustomTabsConnection.SpeculationParams.HIDDEN_TAB:
2500 return "hidden"; 2526 return "hidden";
2501 default: 2527 default:
2502 return "visible"; 2528 return "visible";
2503 } 2529 }
2504 } 2530 }
2505 } 2531 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698