Index: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerProcessor.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerProcessor.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..aa7c926ca84aa6c8810193a9076b8df3978fd0c9 |
--- /dev/null |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerProcessor.java |
@@ -0,0 +1,46 @@ |
+// 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. |
+ |
+package org.chromium.chrome.browser.offlinepages; |
+ |
+import org.chromium.base.Callback; |
+import org.chromium.base.VisibleForTesting; |
+ |
+/** Class allowing for mocking out calls to BackgroundSchedulerBridge. */ |
+public class BackgroundSchedulerProcessor { |
+ private static BackgroundSchedulerProcessor sInstance; |
+ |
+ /** Returns a singleton instance. */ |
+ public static BackgroundSchedulerProcessor getInstance() { |
+ if (sInstance == null) { |
+ sInstance = new BackgroundSchedulerProcessor(); |
+ } |
+ return sInstance; |
+ } |
+ |
+ @VisibleForTesting |
+ static void setInstanceForTesting(BackgroundSchedulerProcessor instance) { |
+ sInstance = instance; |
+ } |
+ |
+ /** |
+ * Starts processing of one or more queued background requests. Returns whether processing was |
+ * started and that caller should expect a callback (once processing has completed or |
+ * terminated). If processing was already active or not able to process for some other reason, |
+ * returns false and this calling instance will not receive a callback. |
+ */ |
+ public boolean startScheduledProcessing( |
+ DeviceConditions deviceConditions, Callback<Boolean> callback) { |
+ return BackgroundSchedulerBridge.startScheduledProcessing(deviceConditions, callback); |
+ } |
+ |
+ /** |
+ * Stops processing background requests. |
+ * @return Whether processing should be scheduled again at a later time, because there is more |
+ * work. |
+ */ |
+ public boolean stopScheduledProcessing() { |
+ return BackgroundSchedulerBridge.stopScheduledProcessing(); |
+ } |
+} |