Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java |
index 884e1eb135afaf30d97141bc122deb6302c92a62..ed6ca84ecc83b04f7a240240f17375735b55ea85 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java |
@@ -120,6 +120,11 @@ public class ChromeBackgroundService extends GcmTaskService { |
SnippetsBridge.fetchSnippets(/*forceRequest=*/false); |
} |
+ @VisibleForTesting |
+ protected void rescheduleFetching() { |
+ SnippetsBridge.rescheduleFetching(); |
+ } |
+ |
private void handlePrecache(Context context, String tag) { |
if (!hasPrecacheInstance()) { |
launchBrowser(context, tag); |
@@ -202,9 +207,29 @@ public class ChromeBackgroundService extends GcmTaskService { |
} |
} |
- @Override |
- public void onInitializeTasks() { |
+ @VisibleForTesting |
+ protected void rescheduleBackgroundSyncTasksOnUpgrade() { |
BackgroundSyncLauncher.rescheduleTasksOnUpgrade(this); |
+ } |
+ |
+ @VisibleForTesting |
+ protected void reschedulePrecacheTasksOnUpgrade() { |
PrecacheController.rescheduleTasksOnUpgrade(this); |
} |
+ |
+ private void rescheduleSnippetsTasksOnUpgrade() { |
+ if (SnippetsLauncher.shouldRescheduleTasksOnUpgrade()) { |
+ if (!SnippetsLauncher.hasInstance()) { |
+ launchBrowser(this, /*tag=*/""); // The |tag| doesn't matter here. |
+ } |
+ rescheduleFetching(); |
+ } |
+ } |
+ |
+ @Override |
+ public void onInitializeTasks() { |
+ rescheduleBackgroundSyncTasksOnUpgrade(); |
+ reschedulePrecacheTasksOnUpgrade(); |
+ rescheduleSnippetsTasksOnUpgrade(); |
+ } |
} |