Index: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
index 3b1ca31eea53835ed2dff211df11657603b48ac8..324d7fd7965435aacefc122c95544b872df1be49 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
@@ -57,6 +57,7 @@ import org.chromium.base.test.util.Restriction; |
import org.chromium.base.test.util.RetryOnFailure; |
import org.chromium.chrome.R; |
import org.chromium.chrome.browser.ChromeActivity; |
+import org.chromium.chrome.browser.ChromeFeatureList; |
import org.chromium.chrome.browser.ChromeSwitches; |
import org.chromium.chrome.browser.ChromeTabbedActivity; |
import org.chromium.chrome.browser.IntentHandler; |
@@ -1810,14 +1811,33 @@ public class CustomTabActivityTest extends CustomTabActivityTestBase { |
testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TAB); |
} |
+ /** |
+ * Test that a hidden tab speculation is executed as a prerender if the |CCT_BACKGROUND_TAB| |
+ * feature is disabled. |
+ **/ |
+ @SmallTest |
+ @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) |
+ @RetryOnFailure |
+ @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
+ "disable-features=" + ChromeFeatureList.CCT_BACKGROUND_TAB}) |
+ public void testHiddenTabDisabled() throws Exception { |
+ testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TAB, |
+ CustomTabsConnection.SpeculationParams.PRERENDER); |
+ } |
+ |
private void testSpeculateCorrectUrl(int speculationMode) throws Exception { |
+ testSpeculateCorrectUrl(speculationMode, speculationMode); |
+ } |
+ |
+ private void testSpeculateCorrectUrl(int requestedSpeculationMode, int usedSpeculationMode) |
+ throws Exception { |
Context context = getInstrumentation().getTargetContext().getApplicationContext(); |
final CustomTabsConnection connection = warmUpAndWait(); |
CustomTabsSessionToken token = CustomTabsSessionToken.createDummySessionTokenForTesting(); |
connection.newSession(token); |
- connection.setSpeculationModeForSession(token, speculationMode); |
+ connection.setSpeculationModeForSession(token, requestedSpeculationMode); |
assertTrue(connection.mayLaunchUrl(token, Uri.parse(mTestPage), null, null)); |
- ensureCompletedSpeculationForUrl(connection, mTestPage, speculationMode); |
+ ensureCompletedSpeculationForUrl(connection, mTestPage, usedSpeculationMode); |
try { |
startCustomTabActivityWithIntent(CustomTabsTestUtils.createMinimalCustomTabIntent( |