| 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(); | 
| +    } | 
| +} | 
|  |