Index: chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java |
index d583b8ed9e52bffad9945547cdba488ee7cd232d..d74996acbe0ea62a3ba2337790d17b3919b09aab 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java |
@@ -16,6 +16,7 @@ import org.chromium.base.ApplicationState; |
import org.chromium.base.ApplicationStatus; |
import org.chromium.base.FieldTrialList; |
import org.chromium.base.VisibleForTesting; |
+import org.chromium.chrome.browser.ChromeFeatureList; |
import org.chromium.chrome.browser.sync.ProfileSyncService; |
import org.chromium.components.invalidation.InvalidationClientService; |
import org.chromium.components.signin.ChromeSigninController; |
@@ -283,7 +284,12 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat |
// that local session data is current and can be used to perform checks. |
boolean requireInvalidationsForInstrumentation = |
FieldTrialList.findFullName("PageRevisitInstrumentation").equals("Enabled"); |
- boolean canDisableSessionInvalidations = !requireInvalidationsForInstrumentation; |
+ // If the NTP is trying to suggest foreign tabs, then recieving invalidations is |
+ // vital, otherwise data is stale and less useful. |
+ boolean requireInvalidationsForSuggestions = ChromeFeatureList.isEnabled( |
+ ChromeFeatureList.NTP_FOREIGN_SESSIONS_SUGGESTIONS); |
+ boolean canDisableSessionInvalidations = !requireInvalidationsForInstrumentation |
+ && !requireInvalidationsForSuggestions; |
boolean canUseGcmUpstream = |
FieldTrialList.findFullName("InvalidationsGCMUpstream").equals("Enabled"); |