| Index: chrome/android/java/src/org/chromium/chrome/browser/precache/PrecacheController.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/precache/PrecacheController.java b/chrome/android/java/src/org/chromium/chrome/browser/precache/PrecacheController.java
|
| index 0b8a6d52f322e217a4fbc7a2bbbd2d7994909ae8..ed0a3d77d2675a2b4d8d5550e10d5e22ce6b8a87 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/precache/PrecacheController.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/precache/PrecacheController.java
|
| @@ -26,6 +26,7 @@ import org.chromium.base.library_loader.LibraryLoader;
|
| import org.chromium.base.metrics.RecordHistogram;
|
| import org.chromium.base.metrics.RecordUserAction;
|
| import org.chromium.chrome.browser.ChromeBackgroundService;
|
| +import org.chromium.chrome.browser.ChromeVersionInfo;
|
| import org.chromium.chrome.browser.util.NonThreadSafe;
|
| import org.chromium.components.precache.DeviceState;
|
| import org.chromium.components.sync.ModelType;
|
| @@ -113,12 +114,13 @@ public class PrecacheController {
|
| isPrecaching(), mDeviceState.isPowerConnected(context),
|
| mDeviceState.isUnmeteredNetworkAvailable(context));
|
| if (isPrecaching()
|
| - && (!mDeviceState.isPowerConnected(context)
|
| + && ((ChromeVersionInfo.isStableBuild()
|
| + && !mDeviceState.isPowerConnected(context))
|
| || !mDeviceState.isUnmeteredNetworkAvailable(context))) {
|
| recordFailureReasons(context);
|
| - cancelPrecaching(!mDeviceState.isPowerConnected(context)
|
| - ? PrecacheUMA.Event.PRECACHE_CANCEL_NO_POWER
|
| - : PrecacheUMA.Event.PRECACHE_CANCEL_NO_UNMETERED_NETWORK);
|
| + cancelPrecaching(!mDeviceState.isUnmeteredNetworkAvailable(context)
|
| + ? PrecacheUMA.Event.PRECACHE_CANCEL_NO_UNMETERED_NETWORK
|
| + : PrecacheUMA.Event.PRECACHE_CANCEL_NO_POWER);
|
| }
|
| }
|
| });
|
| @@ -166,13 +168,13 @@ public class PrecacheController {
|
| */
|
| private static boolean schedulePeriodicPrecacheTask(Context context) {
|
| PeriodicTask task = new PeriodicTask.Builder()
|
| - .setPeriod(WAIT_UNTIL_NEXT_PRECACHE_SECONDS)
|
| - .setPersisted(true)
|
| - .setRequiredNetwork(PeriodicTask.NETWORK_STATE_UNMETERED)
|
| - .setRequiresCharging(true)
|
| - .setService(ChromeBackgroundService.class)
|
| - .setTag(PERIODIC_TASK_TAG)
|
| - .build();
|
| + .setPeriod(WAIT_UNTIL_NEXT_PRECACHE_SECONDS)
|
| + .setPersisted(true)
|
| + .setRequiredNetwork(PeriodicTask.NETWORK_STATE_UNMETERED)
|
| + .setRequiresCharging(ChromeVersionInfo.isStableBuild())
|
| + .setService(ChromeBackgroundService.class)
|
| + .setTag(PERIODIC_TASK_TAG)
|
| + .build();
|
| return sTaskScheduler.scheduleTask(context, task);
|
| }
|
|
|
| @@ -190,15 +192,15 @@ public class PrecacheController {
|
| private static void schedulePrecacheCompletionTask(Context context) {
|
| Log.v(TAG, "scheduling a precache completion task");
|
| OneoffTask task = new OneoffTask.Builder()
|
| - .setExecutionWindow(COMPLETION_TASK_MIN_DELAY_SECONDS,
|
| - COMPLETION_TASK_MAX_DELAY_SECONDS)
|
| - .setPersisted(true)
|
| - .setRequiredNetwork(OneoffTask.NETWORK_STATE_UNMETERED)
|
| - .setRequiresCharging(true)
|
| - .setService(ChromeBackgroundService.class)
|
| - .setTag(CONTINUATION_TASK_TAG)
|
| - .setUpdateCurrent(true)
|
| - .build();
|
| + .setExecutionWindow(COMPLETION_TASK_MIN_DELAY_SECONDS,
|
| + COMPLETION_TASK_MAX_DELAY_SECONDS)
|
| + .setPersisted(true)
|
| + .setRequiredNetwork(OneoffTask.NETWORK_STATE_UNMETERED)
|
| + .setRequiresCharging(ChromeVersionInfo.isStableBuild())
|
| + .setService(ChromeBackgroundService.class)
|
| + .setTag(CONTINUATION_TASK_TAG)
|
| + .setUpdateCurrent(true)
|
| + .build();
|
| if (sTaskScheduler.scheduleTask(context, task)) {
|
| PrecacheUMA.record(PrecacheUMA.Event.ONEOFF_TASK_SCHEDULE);
|
| } else {
|
| @@ -451,7 +453,10 @@ public class PrecacheController {
|
| private void registerDeviceStateReceiver() {
|
| Log.v(TAG, "registered device state receiver");
|
| IntentFilter filter = new IntentFilter();
|
| - filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
|
| + if (ChromeVersionInfo.isStableBuild()) {
|
| + // Power requirement for precache is only for stable channel.
|
| + filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
|
| + }
|
| filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
|
| mAppContext.registerReceiver(mDeviceStateReceiver, filter);
|
| }
|
|
|