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

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

Issue 1751183002: Precache uses GcmNetworkManager for task scheduling (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments and fixed tests Created 4 years, 9 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/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 7f3ea9edc4bd6923e8d1367fb90c9037f4337a1c..030c9773ce3e267374a9f680bcf734de28a422d6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
@@ -18,6 +18,7 @@ import org.chromium.base.library_loader.ProcessInitException;
import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
import org.chromium.chrome.browser.ntp.snippets.SnippetsController;
import org.chromium.chrome.browser.ntp.snippets.SnippetsLauncher;
+import org.chromium.chrome.browser.precache.PrecacheController;
/**
* {@link ChromeBackgroundService} is scheduled through the {@link GcmNetworkManager} when the
@@ -46,6 +47,11 @@ public class ChromeBackgroundService extends GcmTaskService {
handleFetchSnippets(context);
break;
+ case PrecacheController.PERIODIC_TASK_TAG:
+ case PrecacheController.CONTINUATION_TASK_TAG:
+ handlePrecache(context, params.getTag());
+ break;
+
default:
Log.i(TAG, "Unknown task tag " + params.getTag());
break;
@@ -74,6 +80,23 @@ public class ChromeBackgroundService extends GcmTaskService {
SnippetsController.get(context).fetchSnippets();
}
+ private void handlePrecache(Context context, String tag) {
+ if (!hasPrecacheInstance()) {
+ launchBrowser(context);
+ }
+ precache(context, tag);
+ }
+
+ @VisibleForTesting
+ protected boolean hasPrecacheInstance() {
+ return PrecacheController.hasInstance();
+ }
+
+ @VisibleForTesting
+ protected void precache(Context context, String tag) {
+ PrecacheController.get(context).precache(tag);
+ }
+
@VisibleForTesting
@SuppressFBWarnings("DM_EXIT")
protected void launchBrowser(Context context) {
@@ -91,5 +114,6 @@ public class ChromeBackgroundService extends GcmTaskService {
@Override
public void onInitializeTasks() {
BackgroundSyncLauncher.rescheduleTasksOnUpgrade(this);
+ PrecacheController.rescheduleTasksOnUpgrade(this);
}
}

Powered by Google App Engine
This is Rietveld 408576698