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

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

Issue 1699143002: [NTP Snippets] Schedule periodic fetching (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@snippets_feature
Patch Set: fix bots Created 4 years, 10 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/BackgroundSyncLauncherService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
similarity index 47%
rename from chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncherService.java
rename to chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
index a6219fd1868d9300af1d642f605d95b7f93b4152..7828402c83dd6c7bc34685759953359eff50b6d0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncherService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
@@ -1,4 +1,4 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -16,39 +16,72 @@ import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.SuppressFBWarnings;
import org.chromium.base.library_loader.LibraryProcessType;
import org.chromium.base.library_loader.ProcessInitException;
+import org.chromium.chrome.browser.ntp.snippets.SnippetsController;
+import org.chromium.chrome.browser.ntp.snippets.SnippetsLauncher;
import org.chromium.content.app.ContentApplication;
import org.chromium.content.browser.BrowserStartupController;
/**
- * {@link BackgroundSyncLauncherService} is scheduled through the {@link GcmNetworkManager}
- * when the browser needs to be launched in response to changing network or power conditions.
+ * {@link ChromeBackgroundService} is scheduled through the {@link GcmNetworkManager} when the
+ * browser needs to be launched for scheduled tasks, or in response to changing network or power
+ * conditions.
*/
-public class BackgroundSyncLauncherService extends GcmTaskService {
- private static final String TAG = "BgSyncLauncher";
+public class ChromeBackgroundService extends GcmTaskService {
+ private static final String TAG = "BackgroundService";
@Override
- @VisibleForTesting
public int onRunTask(TaskParams params) {
- // Start the browser. The browser's BackgroundSyncManager (for the active profile) will
- // start, check the network, and run any necessary sync events. This task runs with a wake
- // lock, but has a three minute timeout, so we need to start the browser in its own task.
- // TODO(jkarlin): Protect the browser sync event with a wake lock. See crbug.com/486020.
- Log.v(TAG, "Starting Browser after coming online");
+ Log.i(TAG, "Woken up at " + new java.util.Date().toString());
+ handleRunTask(params.getTag());
+ return GcmNetworkManager.RESULT_SUCCESS;
+ }
+
+ @VisibleForTesting
+ public void handleRunTask(final String tag) {
final Context context = this;
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public void run() {
- if (!BackgroundSyncLauncher.hasInstance()) {
- launchBrowser(context);
+ switch(tag) {
+ case BackgroundSyncLauncher.TASK_TAG:
+ handleBackgroundSyncEvent(context);
+ break;
+
+ case SnippetsLauncher.TASK_TAG:
+ handleFetchSnippets(context);
+ break;
+
+ default:
+ Log.i(TAG, "Unknown task tag " + tag);
+ break;
}
}
});
- return GcmNetworkManager.RESULT_SUCCESS;
+ }
+
+ private void handleBackgroundSyncEvent(Context context) {
+ if (!BackgroundSyncLauncher.hasInstance()) {
+ // Start the browser. The browser's BackgroundSyncManager (for the active profile) will
+ // start, check the network, and run any necessary sync events. This task runs with a
+ // wake lock, but has a three minute timeout, so we need to start the browser in its
+ // own task.
+ // TODO(jkarlin): Protect the browser sync event with a wake lock.
+ // See crbug.com/486020.
+ launchBrowser(context);
+ }
+ }
+
+ private void handleFetchSnippets(Context context) {
+ if (!SnippetsLauncher.hasInstance()) {
+ launchBrowser(context);
+ }
+ SnippetsController.get(context).fetchSnippets(true);
}
@VisibleForTesting
@SuppressFBWarnings("DM_EXIT")
protected void launchBrowser(Context context) {
+ Log.i(TAG, "Launching browser");
ContentApplication.initCommandLine(context);
try {
BrowserStartupController.get(context, LibraryProcessType.PROCESS_BROWSER)
@@ -62,7 +95,6 @@ public class BackgroundSyncLauncherService extends GcmTaskService {
}
@Override
- @VisibleForTesting
public void onInitializeTasks() {
BackgroundSyncLauncher.rescheduleTasksOnUpgrade(this);
}

Powered by Google App Engine
This is Rietveld 408576698