[Offline pages] Creating BackgroundJobScheduler, which uses JobScheduler
In order to enable scheduling using JobScheduler, this patch:
* Refactors BackgroundScheduler to expose its functionality through
instance methods.
* Adds BackgroundScheduler#getInstance method to get appropriate
implementation of BackgroundScheduler (default uses GCM Network
Manager)
* Introduces BackgroundJobScheduler, which implements basic
scheduling using JobScheduler
* Updates TasksExtrasPacker to handle PersistableBundle, which
is required by JobScheduler (handling BaseBudnle would work if
min API level was 21).
* Updates/adds tests.
BUG=683802,692151
[email protected],[email protected]
Review-Url: https://codereview.chromium.org/2686203002
Cr-Commit-Position: refs/heads/master@{#451866}
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
index 84495b9e..801b2dc 100644
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -617,8 +617,11 @@
"java/src/org/chromium/chrome/browser/ntp/snippets/SuggestionsSource.java",
"java/src/org/chromium/chrome/browser/offlinepages/DeviceConditions.java",
"java/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTask.java",
+ "java/src/org/chromium/chrome/browser/offlinepages/BackgroundGcmScheduler.java",
+ "java/src/org/chromium/chrome/browser/offlinepages/BackgroundJobScheduler.java",
"java/src/org/chromium/chrome/browser/offlinepages/BackgroundScheduler.java",
"java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerBridge.java",
+ "java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerJobService.java",
"java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerProcessorImpl.java",
"java/src/org/chromium/chrome/browser/offlinepages/ClientId.java",
"java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java",