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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java

Issue 1271003002: Determine whether to disable session invalidations at startup (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « no previous file | chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 b60b2e060e32fcd66ee35eff8c269557876878c7..7c9f8ee37ad2bc56bc911cffdf5f667d8b3d1f49 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
@@ -9,13 +9,17 @@ import android.content.Intent;
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.sync.ProfileSyncService;
import org.chromium.components.invalidation.InvalidationClientService;
import org.chromium.sync.AndroidSyncSettings;
+import org.chromium.sync.internal_api.pub.base.ModelType;
import org.chromium.sync.notifier.InvalidationIntentProtocol;
import org.chromium.sync.signin.ChromeSigninController;
+import java.util.HashSet;
+
/**
* Controller used to send start, stop, and registration-change commands to the invalidation
* client library used by Sync.
@@ -28,13 +32,26 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
private final Context mContext;
/**
+ * Whether session sync invalidations should be disabled.
+ */
+ private final boolean mDisableSessionInvalidations;
+
+ /**
* Updates the sync invalidation types that the client is registered for based on the preferred
* sync types. Starts the client if needed.
*/
public void ensureStartedAndUpdateRegisteredTypes() {
+ HashSet<ModelType> typesToRegister = new HashSet<ModelType>();
+ typesToRegister.addAll(ProfileSyncService.get(mContext).getPreferredDataTypes());
+ if (mDisableSessionInvalidations) {
+ typesToRegister.remove(ModelType.SESSION);
+ typesToRegister.remove(ModelType.FAVICON_TRACKING);
+ typesToRegister.remove(ModelType.FAVICON_IMAGE);
+ }
+
Intent registerIntent = InvalidationIntentProtocol.createRegisterIntent(
ChromeSigninController.get(mContext).getSignedInUser(),
- ProfileSyncService.get(mContext).getPreferredDataTypes());
+ typesToRegister);
registerIntent.setClass(mContext, InvalidationClientService.class);
mContext.startService(registerIntent);
}
@@ -64,7 +81,10 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
public static InvalidationController get(Context context) {
synchronized (LOCK) {
if (sInstance == null) {
- sInstance = new InvalidationController(context);
+ boolean disableSessionInvalidations =
+ FieldTrialList.findFullName("AndroidSessionNotifications")
+ .equals("Disabled");
+ sInstance = new InvalidationController(context, disableSessionInvalidations);
}
return sInstance;
}
@@ -74,10 +94,11 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
* Creates an instance using {@code context} to send intents.
*/
@VisibleForTesting
- InvalidationController(Context context) {
+ InvalidationController(Context context, boolean disableSessionInvalidations) {
Context appContext = context.getApplicationContext();
if (appContext == null) throw new NullPointerException("Unable to get application context");
mContext = appContext;
+ mDisableSessionInvalidations = disableSessionInvalidations;
ApplicationStatus.registerApplicationStateListener(this);
}
« no previous file with comments | « no previous file | chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698