| 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 affa661086928bb29b88f6dcdfff705e2ab116dc..eef520945110a6f6e97381ee69f2363d9ad25658 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
|
| @@ -71,6 +71,7 @@ import org.chromium.chrome.browser.history.BrowsingHistoryBridge;
|
| import org.chromium.chrome.browser.history.HistoryItem;
|
| import org.chromium.chrome.browser.history.TestBrowsingHistoryObserver;
|
| import org.chromium.chrome.browser.metrics.PageLoadMetrics;
|
| +import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
| import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler;
|
| import org.chromium.chrome.browser.profiles.Profile;
|
| import org.chromium.chrome.browser.tab.EmptyTabObserver;
|
| @@ -1942,6 +1943,38 @@ public class CustomTabActivityTest extends CustomTabActivityTestBase {
|
| CustomTabsConnection.SpeculationParams.PRERENDER);
|
| }
|
|
|
| + /**
|
| + * Test that hidden tab speculation is not performed if 3rd party cookies are blocked.
|
| + **/
|
| + @SmallTest
|
| + @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
|
| + @RetryOnFailure
|
| + @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| + "enable-features=" + ChromeFeatureList.CCT_BACKGROUND_TAB})
|
| + public void testHiddenTabThirdPartyCookiesBlocked() throws Exception {
|
| + final CustomTabsConnection connection = warmUpAndWait();
|
| + final CustomTabsSessionToken token =
|
| + CustomTabsSessionToken.createDummySessionTokenForTesting();
|
| + connection.newSession(token);
|
| + connection.setSpeculationModeForSession(
|
| + token, CustomTabsConnection.SpeculationParams.HIDDEN_TAB);
|
| + connection.warmup(0);
|
| +
|
| + // Needs the browser process to be initialized.
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + PrefServiceBridge prefs = PrefServiceBridge.getInstance();
|
| + boolean old_block_pref = prefs.isBlockThirdPartyCookiesEnabled();
|
| + prefs.setBlockThirdPartyCookiesEnabled(false);
|
| + assertTrue(connection.maySpeculate(token));
|
| + prefs.setBlockThirdPartyCookiesEnabled(true);
|
| + assertFalse(connection.maySpeculate(token));
|
| + prefs.setBlockThirdPartyCookiesEnabled(old_block_pref);
|
| + }
|
| + });
|
| + }
|
| +
|
| private void testSpeculateCorrectUrl(int speculationMode) throws Exception {
|
| testSpeculateCorrectUrl(speculationMode, speculationMode);
|
| }
|
|
|