Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(302)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTask.java

Issue 2830843002: [Offline pages] Updates to background scheduling to use BTS (Closed)
Patch Set: Fixing the crash on NCN not being initialized Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTask.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTask.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTask.java
deleted file mode 100644
index 8bd756880df8687578b53403d73ae1ab7baf5064..0000000000000000000000000000000000000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTask.java
+++ /dev/null
@@ -1,98 +0,0 @@
-// 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 android.content.Context;
-import android.os.Bundle;
-
-import org.chromium.base.ApplicationStatus;
-import org.chromium.base.Callback;
-import org.chromium.base.Log;
-import org.chromium.base.SysUtils;
-import org.chromium.chrome.browser.ChromeBackgroundServiceWaiter;
-import org.chromium.chrome.browser.offlinepages.interfaces.BackgroundSchedulerProcessor;
-
-/**
- * Handles servicing of background offlining requests coming via the GcmNetworkManager.
- */
-public class BackgroundOfflinerTask {
- private static final String TAG = "BGOfflinerTask";
- private static final long DEFER_START_SECONDS = 5 * 60;
-
- private final BackgroundSchedulerProcessor mBridge;
-
- public BackgroundOfflinerTask(BackgroundSchedulerProcessor bridge) {
- mBridge = bridge;
- }
-
- /**
- * Triggers processing of background offlining requests. This is called when
- * system conditions are appropriate for background offlining, typically from the
- * GcmTaskService onRunTask() method. In response, we will start the
- * task processing by passing the call along to the C++ RequestCoordinator.
- * Also starts UMA collection.
- *
- * @returns true for success
- */
- public void startBackgroundRequests(
- Context context, Bundle bundle, final ChromeBackgroundServiceWaiter waiter) {
- // Set up backup scheduled task in case processing is killed before RequestCoordinator
- // has a chance to reschedule base on remaining work.
- BackgroundScheduler.getInstance(context).scheduleBackup(
- TaskExtrasPacker.unpackTriggerConditionsFromBundle(bundle), DEFER_START_SECONDS);
- // Complete the wait if background request processing was not started.
- // If background processing was started, completion is going to be handled by callback.
- if (!startBackgroundRequestsImpl(mBridge, context, bundle, createCallback(waiter))) {
- waiter.onWaitDone();
- }
- }
-
- /**
- * Triggers processing of background offlining requests. This is called when
- * system conditions are appropriate for background offlining, typically from the
- * GcmTaskService onRunTask() method. In response, we will start the
- * task processing by passing the call along to the C++ RequestCoordinator.
- * Also starts UMA collection.
- *
- * @returns Whether processing will be carried out and completion will be indicated through a
- * callback.
- */
- static boolean startBackgroundRequestsImpl(BackgroundSchedulerProcessor bridge, Context context,
- Bundle taskExtras, Callback<Boolean> callback) {
- TriggerConditions triggerConditions =
- TaskExtrasPacker.unpackTriggerConditionsFromBundle(taskExtras);
- DeviceConditions currentConditions = DeviceConditions.getCurrentConditions(context);
- if (!currentConditions.isPowerConnected()
- && currentConditions.getBatteryPercentage()
- < triggerConditions.getMinimumBatteryPercentage()) {
- Log.d(TAG, "Battery percentage is lower than minimum to start processing");
- return false;
- }
-
- if (SysUtils.isLowEndDevice() && ApplicationStatus.hasVisibleActivities()) {
- Log.d(TAG, "Application visible on low-end device so deferring background processing");
- return false;
- }
-
- // Gather UMA data to measure how often the user's machine is amenable to background
- // loading when we wake to do a task.
- long taskScheduledTimeMillis = TaskExtrasPacker.unpackTimeFromBundle(taskExtras);
- OfflinePageUtils.recordWakeupUMA(context, taskScheduledTimeMillis);
-
- return bridge.startScheduledProcessing(currentConditions, callback);
- }
-
- private Callback<Boolean> createCallback(final ChromeBackgroundServiceWaiter waiter) {
- return new Callback<Boolean>() {
- /** Callback releasing the wakelock once background work concludes. */
- @Override
- public void onResult(Boolean result) {
- Log.d(TAG, "onResult");
- // Release the wake lock.
- waiter.onWaitDone();
- }
- };
- }
-}

Powered by Google App Engine
This is Rietveld 408576698