Implement GCM Network Manager scheduling through Background Task Scheduler component This is to track implementation of remaining pieces of Background Task Scheduler.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7c52dcabdaefff4b583999c786afbefa907564fb commit 7c52dcabdaefff4b583999c786afbefa907564fb Author: fgorski <fgorski@chromium.org> Date: Mon May 15 22:15:20 2017 [Android] Adding scheduling through GcmNetworkManager This patch: * Adds ability to schedule using GcmNetworkManager (with junit tests). * Adds code to covert from task to TaskParams (GCM) * Adds GcmTaskService implementation with a waiter to handle tasks taking time to execute (with junit) * Adds ability to store tasks in prefs for upgrade scenario (+junit) BUG= 710630 R=nyquist@chromium.org Review-Url: https://codereview.chromium.org/2779753002 Cr-Commit-Position: refs/heads/master@{#471919} [modify] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/BUILD.gn [add] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskGcmTaskService.java [modify] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java [modify] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerFactory.java [add] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java [add] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerPrefs.java [add] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/BackgroundTaskGcmTaskServiceTest.java [add] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManagerTest.java [add] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerPrefsTest.java [add] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/ShadowGcmNetworkManager.java [add] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/TestBackgroundTask.java [modify] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/testing/buildbot/chromium.linux.json [modify] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/testing/buildbot/gn_isolate_map.pyl [modify] https://crrev.com/7c52dcabdaefff4b583999c786afbefa907564fb/testing/buildbot/manage.py
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b10fbe550ed4e5ec7da45c2a07fd744502aee8f1 commit b10fbe550ed4e5ec7da45c2a07fd744502aee8f1 Author: fgorski <fgorski@chromium.org> Date: Tue May 23 17:23:08 2017 [Android] Implements OS upgrade check and rescheduling * Adds an OS upgrade check to the BackgroundTaskScheduler * Adds OS version tracking to BackgroundTaskSchedulerPrefs * Ensures GCMNetworkManager based upgrades only happen on supported OSs * Calls OS version check from DeferredStartupHandler BUG= 710630 R=nyquist@chromium.org Review-Url: https://codereview.chromium.org/2819703002 Cr-Commit-Position: refs/heads/master@{#473957} [modify] https://crrev.com/b10fbe550ed4e5ec7da45c2a07fd744502aee8f1/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskGcmTaskService.java [modify] https://crrev.com/b10fbe550ed4e5ec7da45c2a07fd744502aee8f1/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java [modify] https://crrev.com/b10fbe550ed4e5ec7da45c2a07fd744502aee8f1/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerFactory.java [modify] https://crrev.com/b10fbe550ed4e5ec7da45c2a07fd744502aee8f1/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerPrefs.java [modify] https://crrev.com/b10fbe550ed4e5ec7da45c2a07fd744502aee8f1/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/BackgroundTaskGcmTaskServiceTest.java [modify] https://crrev.com/b10fbe550ed4e5ec7da45c2a07fd744502aee8f1/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerPrefsTest.java [modify] https://crrev.com/b10fbe550ed4e5ec7da45c2a07fd744502aee8f1/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerTest.java [modify] https://crrev.com/b10fbe550ed4e5ec7da45c2a07fd744502aee8f1/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/ShadowGcmNetworkManager.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/acd0e4ec71292ce486b7a5d9ca5ecece6712bfa3 commit acd0e4ec71292ce486b7a5d9ca5ecece6712bfa3 Author: fgorski <fgorski@chromium.org> Date: Wed May 24 19:22:53 2017 [Android] Native initialization task for BackgroundTaskScheduler Provides an abstract class implementing BackgroundTask with capability to ensure that native portion of Chrome is initialized. BUG= 710630 R=nyquist@chromium.org Review-Url: https://codereview.chromium.org/2825783003 Cr-Commit-Position: refs/heads/master@{#474385} [add] https://crrev.com/acd0e4ec71292ce486b7a5d9ca5ecece6712bfa3/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/NativeBackgroundTask.java [modify] https://crrev.com/acd0e4ec71292ce486b7a5d9ca5ecece6712bfa3/chrome/android/java_sources.gni [add] https://crrev.com/acd0e4ec71292ce486b7a5d9ca5ecece6712bfa3/chrome/android/junit/src/org/chromium/chrome/browser/background_task_scheduler/NativeBackgroundTaskTest.java [modify] https://crrev.com/acd0e4ec71292ce486b7a5d9ca5ecece6712bfa3/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/TaskParameters.java [modify] https://crrev.com/acd0e4ec71292ce486b7a5d9ca5ecece6712bfa3/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java
Code is in now. Still working on UMA + documentation.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/94b6d6cb942ab1911648cdac67b33e92a013462a commit 94b6d6cb942ab1911648cdac67b33e92a013462a Author: Filip Gorski <fgorski@chromium.org> Date: Tue Jan 23 18:33:50 2018 [BTS] Updating documentation: GCM scheduling and native task Updates documentation for background task scheduler: * Removes the information that GCM Network Manager scheduling is not implemented. * Adds information about native task. Bug: 710630 Change-Id: I2cc660c305111393c0f7f84073b3e7b40b0c8954 Reviewed-on: https://chromium-review.googlesource.com/879028 Commit-Queue: Filip Gorski <fgorski@chromium.org> Reviewed-by: Filip Gorski <fgorski@chromium.org> Reviewed-by: Tommy Nyquist <nyquist@chromium.org> Cr-Commit-Position: refs/heads/master@{#531283} [modify] https://crrev.com/94b6d6cb942ab1911648cdac67b33e92a013462a/components/background_task_scheduler/README.md
I think we can mark this bug as fixed now?
Comment 1 by bugdroid1@chromium.org
, May 15 2017