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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/sync/ChromiumSyncAdapter.java

Issue 23643002: Enable invalidations for arbitrary objects on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 3 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
Index: chrome/android/java/src/org/chromium/chrome/browser/sync/ChromiumSyncAdapter.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/ChromiumSyncAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/ChromiumSyncAdapter.java
index 869f8057822f2fa4f40c2b5b6c50d43e18a99398..571fe018b8dfadc04308758b83b79bca1bd0e13d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/ChromiumSyncAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/ChromiumSyncAdapter.java
@@ -15,6 +15,7 @@ import android.os.Handler;
import android.util.Log;
import com.google.common.annotations.VisibleForTesting;
+import com.google.protos.ipc.invalidation.Types;
import org.chromium.base.ThreadUtils;
import org.chromium.content.browser.BrowserStartupController;
@@ -30,6 +31,8 @@ public abstract class ChromiumSyncAdapter extends AbstractThreadedSyncAdapter {
// TODO(nyquist) Make these fields package protected once downstream sync adapter tests are
// removed.
@VisibleForTesting
+ public static final String INVALIDATION_OBJECT_SOURCE_KEY = "objectSource";
+ @VisibleForTesting
public static final String INVALIDATION_OBJECT_ID_KEY = "objectId";
@VisibleForTesting
public static final String INVALIDATION_VERSION_KEY = "version";
@@ -124,6 +127,7 @@ public abstract class ChromiumSyncAdapter extends AbstractThreadedSyncAdapter {
final Context context, final Account acct, Bundle extras,
final SyncResult syncResult, final Semaphore semaphore) {
final boolean syncAllTypes = extras.getString(INVALIDATION_OBJECT_ID_KEY) == null;
+ final int objectSource = syncAllTypes ? 0 : extras.getInt(INVALIDATION_OBJECT_SOURCE_KEY);
final String objectId = syncAllTypes ? "" : extras.getString(INVALIDATION_OBJECT_ID_KEY);
final long version = syncAllTypes ? 0 : extras.getLong(INVALIDATION_VERSION_KEY);
final String payload = syncAllTypes ? "" : extras.getString(INVALIDATION_PAYLOAD_KEY);
@@ -136,7 +140,16 @@ public abstract class ChromiumSyncAdapter extends AbstractThreadedSyncAdapter {
Log.v(TAG, "Received sync tickle for all types.");
requestSyncForAllTypes();
} else {
- Log.v(TAG, "Received sync tickle for " + objectId + ".");
+ // Invalidations persisted before objectSource was added should be assumed to be
+ // for Sync objects. TODO(stepco): Remove this check once all persisted
+ // invalidations can be expected to have the objectSource.
+ int resolvedSource = objectSource;
+ if (resolvedSource == 0) {
+ resolvedSource = Types.ObjectSource.Type.CHROME_SYNC.getNumber();
+ }
+ Log.v(TAG, "Received sync tickle for " + resolvedSource + " " + objectId + ".");
+ requestSync(resolvedSource, objectId, version, payload);
+ // Call legacy requestSync. See comment on the method.
requestSync(objectId, version, payload);
}
semaphore.release();
@@ -153,10 +166,17 @@ public abstract class ChromiumSyncAdapter extends AbstractThreadedSyncAdapter {
};
}
+ /**
+ * Legacy requestSync method present to retain compatibility with a test which overrides it.
+ * TODO(stepco): Remove this method once the dependent test is updated to override the new
+ * requestSync method.
+ */
+ public void requestSync(String objectId, long version, String payload) {}
+
@VisibleForTesting
- public void requestSync(String objectId, long version, String payload) {
+ public void requestSync(int objectSource, String objectId, long version, String payload) {
ProfileSyncService.get(mApplication)
- .requestSyncFromNativeChrome(objectId, version, payload);
+ .requestSyncFromNativeChrome(objectSource, objectId, version, payload);
}
@VisibleForTesting
« no previous file with comments | « base/android/jni_array_unittest.cc ('k') | chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698