Commit 7ee2d050 authored by Mohamed Heikal's avatar Mohamed Heikal Committed by Commit Bot

Remove unnecessary gcm token plumbing

GCM token used to be plumbed from native to java and back so that it is stored
in the job scheduler across browser restarts. This is no longer required as
now, the GCM token is stored in prefs on native's side. This cl removes all the
unneeded plumbing code.

Bug: 972218
Change-Id: I6e2b91140760c197ee872fc4c761cd6637451ef2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1649341
Auto-Submit: Mohamed Heikal <mheikal@chromium.org>
Commit-Queue: Carlos Knippschild <carlosk@chromium.org>
Reviewed-by: default avatarCarlos Knippschild <carlosk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#667362}
parent aaa7027f
...@@ -25,9 +25,6 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask { ...@@ -25,9 +25,6 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask {
/** Key used in the extra data {@link Bundle} when the limitless flag is enabled. */ /** Key used in the extra data {@link Bundle} when the limitless flag is enabled. */
public static final String LIMITLESS_BUNDLE_KEY = "limitlessPrefetching"; public static final String LIMITLESS_BUNDLE_KEY = "limitlessPrefetching";
/** Key used in the extra data {@link Bundle} to store the GCM token. */
public static final String GCM_TOKEN_BUNDLE_KEY = "gcmToken";
private static final int MINIMUM_BATTERY_PERCENTAGE_FOR_PREFETCHING = 50; private static final int MINIMUM_BATTERY_PERCENTAGE_FOR_PREFETCHING = 50;
private static boolean sSkipConditionCheckingForTesting; private static boolean sSkipConditionCheckingForTesting;
...@@ -43,8 +40,6 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask { ...@@ -43,8 +40,6 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask {
private boolean mCachedRescheduleResult = true; private boolean mCachedRescheduleResult = true;
private boolean mLimitlessPrefetchingEnabled; private boolean mLimitlessPrefetchingEnabled;
private String mGcmToken;
public PrefetchBackgroundTask() {} public PrefetchBackgroundTask() {}
@Override @Override
...@@ -59,7 +54,6 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask { ...@@ -59,7 +54,6 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask {
mTaskFinishedCallback = callback; mTaskFinishedCallback = callback;
mLimitlessPrefetchingEnabled = taskParameters.getExtras().getBoolean(LIMITLESS_BUNDLE_KEY); mLimitlessPrefetchingEnabled = taskParameters.getExtras().getBoolean(LIMITLESS_BUNDLE_KEY);
mGcmToken = taskParameters.getExtras().getString(GCM_TOKEN_BUNDLE_KEY);
// Check current device conditions. They might be set to null when testing and for some // Check current device conditions. They might be set to null when testing and for some
// specific Android devices. // specific Android devices.
...@@ -113,7 +107,7 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask { ...@@ -113,7 +107,7 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask {
return; return;
} }
nativeStartPrefetchTask(mGcmToken); nativeStartPrefetchTask();
} }
private boolean isBrowserRunningInReducedMode() { private boolean isBrowserRunningInReducedMode() {
...@@ -143,9 +137,9 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask { ...@@ -143,9 +137,9 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask {
// that backoff states are rare, we decided not to start native here just to get an unlikely // that backoff states are rare, we decided not to start native here just to get an unlikely
// set value of backoff time for the schedule calls. // set value of backoff time for the schedule calls.
if (mLimitlessPrefetchingEnabled) { if (mLimitlessPrefetchingEnabled) {
PrefetchBackgroundTaskScheduler.scheduleTaskLimitless(0, mGcmToken); PrefetchBackgroundTaskScheduler.scheduleTaskLimitless(0);
} else { } else {
PrefetchBackgroundTaskScheduler.scheduleTask(0, mGcmToken); PrefetchBackgroundTaskScheduler.scheduleTask(0);
} }
} }
...@@ -210,7 +204,7 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask { ...@@ -210,7 +204,7 @@ public class PrefetchBackgroundTask extends NativeBackgroundTask {
} }
@VisibleForTesting @VisibleForTesting
native boolean nativeStartPrefetchTask(String gcmToken); native boolean nativeStartPrefetchTask();
@VisibleForTesting @VisibleForTesting
native boolean nativeOnStopTask(long nativePrefetchBackgroundTaskAndroid); native boolean nativeOnStopTask(long nativePrefetchBackgroundTaskAndroid);
native void nativeSetTaskReschedulingForTesting( native void nativeSetTaskReschedulingForTesting(
......
...@@ -28,8 +28,8 @@ public class PrefetchBackgroundTaskScheduler { ...@@ -28,8 +28,8 @@ public class PrefetchBackgroundTaskScheduler {
* TODO(dewittj): Handle skipping work if the battery percentage is too low. * TODO(dewittj): Handle skipping work if the battery percentage is too low.
*/ */
@CalledByNative @CalledByNative
public static void scheduleTask(int additionalDelaySeconds, String gcmToken) { public static void scheduleTask(int additionalDelaySeconds) {
scheduleTaskInternal(additionalDelaySeconds, false, gcmToken); scheduleTaskInternal(additionalDelaySeconds, false);
} }
/** /**
...@@ -37,18 +37,12 @@ public class PrefetchBackgroundTaskScheduler { ...@@ -37,18 +37,12 @@ public class PrefetchBackgroundTaskScheduler {
* delays and no network restrictions (device needs only to be online). * delays and no network restrictions (device needs only to be online).
*/ */
@CalledByNative @CalledByNative
public static void scheduleTaskLimitless(int additionalDelaySeconds, String gcmToken) { public static void scheduleTaskLimitless(int additionalDelaySeconds) {
scheduleTaskInternal(additionalDelaySeconds, true, gcmToken); scheduleTaskInternal(additionalDelaySeconds, true);
}
static Bundle createGCMTokenBundle(String gcmToken) {
Bundle bundle = new Bundle(1);
bundle.putString(PrefetchBackgroundTask.GCM_TOKEN_BUNDLE_KEY, gcmToken);
return bundle;
} }
private static void scheduleTaskInternal( private static void scheduleTaskInternal(
int additionalDelaySeconds, boolean limitlessPrefetching, String gcmToken) { int additionalDelaySeconds, boolean limitlessPrefetching) {
final long minimumTimeSeconds = final long minimumTimeSeconds =
(limitlessPrefetching ? LIMITLESS_START_DELAY_SECONDS : DEFAULT_START_DELAY_SECONDS) (limitlessPrefetching ? LIMITLESS_START_DELAY_SECONDS : DEFAULT_START_DELAY_SECONDS)
+ additionalDelaySeconds; + additionalDelaySeconds;
...@@ -63,17 +57,16 @@ public class PrefetchBackgroundTaskScheduler { ...@@ -63,17 +57,16 @@ public class PrefetchBackgroundTaskScheduler {
.setRequiredNetworkType(TaskInfo.NetworkType.UNMETERED) .setRequiredNetworkType(TaskInfo.NetworkType.UNMETERED)
.setIsPersisted(true) .setIsPersisted(true)
.setUpdateCurrent(true); .setUpdateCurrent(true);
Bundle bundle = createGCMTokenBundle(gcmToken);
/* Limitless prefetching eliminates the default wait time but still complies with backoff /* Limitless prefetching eliminates the default wait time but still complies with backoff
* delays determined by |additionalDelaySeconds|. There's also no restriction on the network * delays determined by |additionalDelaySeconds|. There's also no restriction on the network
* type. * type.
*/ */
if (limitlessPrefetching) { if (limitlessPrefetching) {
taskInfoBuilder.setRequiredNetworkType(TaskInfo.NetworkType.ANY); taskInfoBuilder.setRequiredNetworkType(TaskInfo.NetworkType.ANY);
Bundle bundle = new Bundle(1);
bundle.putBoolean(PrefetchBackgroundTask.LIMITLESS_BUNDLE_KEY, true); bundle.putBoolean(PrefetchBackgroundTask.LIMITLESS_BUNDLE_KEY, true);
taskInfoBuilder.setExtras(bundle);
} }
taskInfoBuilder.setExtras(bundle);
BackgroundTaskSchedulerFactory.getScheduler().schedule( BackgroundTaskSchedulerFactory.getScheduler().schedule(
ContextUtils.getApplicationContext(), taskInfoBuilder.build()); ContextUtils.getApplicationContext(), taskInfoBuilder.build());
} }
......
...@@ -50,7 +50,6 @@ public class PrefetchBackgroundTaskTest { ...@@ -50,7 +50,6 @@ public class PrefetchBackgroundTaskTest {
private static final double BACKOFF_JITTER_FACTOR = 0.33; private static final double BACKOFF_JITTER_FACTOR = 0.33;
private static final int SEMAPHORE_TIMEOUT_MS = 5000; private static final int SEMAPHORE_TIMEOUT_MS = 5000;
private static final String GCM_TOKEN = "dummy_gcm_token";
private TestBackgroundTaskScheduler mScheduler; private TestBackgroundTaskScheduler mScheduler;
private static class TestPrefetchBackgroundTask extends PrefetchBackgroundTask { private static class TestPrefetchBackgroundTask extends PrefetchBackgroundTask {
...@@ -63,9 +62,7 @@ public class PrefetchBackgroundTaskTest { ...@@ -63,9 +62,7 @@ public class PrefetchBackgroundTaskTest {
public void startTask(Context context, final TaskFinishedCallback callback) { public void startTask(Context context, final TaskFinishedCallback callback) {
TaskParameters.Builder builder = TaskParameters.Builder builder =
TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID);
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(
GCM_TOKEN));
TaskParameters params = builder.build(); TaskParameters params = builder.build();
onStartTask(context, params, new TaskFinishedCallback() { onStartTask(context, params, new TaskFinishedCallback() {
@Override @Override
...@@ -83,9 +80,7 @@ public class PrefetchBackgroundTaskTest { ...@@ -83,9 +80,7 @@ public class PrefetchBackgroundTaskTest {
public void stopTask() { public void stopTask() {
TestThreadUtils.runOnUiThreadBlocking(() -> { TestThreadUtils.runOnUiThreadBlocking(() -> {
TaskParameters.Builder builder = TaskParameters.Builder builder =
TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID);
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(
GCM_TOKEN));
TaskParameters params = builder.build(); TaskParameters params = builder.build();
onStopTask(ContextUtils.getApplicationContext(), params); onStopTask(ContextUtils.getApplicationContext(), params);
}); });
...@@ -203,9 +198,8 @@ public class PrefetchBackgroundTaskTest { ...@@ -203,9 +198,8 @@ public class PrefetchBackgroundTaskTest {
} }
private void scheduleTask(int additionalDelaySeconds) { private void scheduleTask(int additionalDelaySeconds) {
TestThreadUtils.runOnUiThreadBlocking(() -> { TestThreadUtils.runOnUiThreadBlocking(
PrefetchBackgroundTaskScheduler.scheduleTask(additionalDelaySeconds, GCM_TOKEN); () -> { PrefetchBackgroundTaskScheduler.scheduleTask(additionalDelaySeconds); });
});
} }
@Test @Test
......
...@@ -102,7 +102,6 @@ public class PrefetchFeedFlowTest implements WebServer.RequestHandler { ...@@ -102,7 +102,6 @@ public class PrefetchFeedFlowTest implements WebServer.RequestHandler {
"https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"; "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html";
private static final String THUMBNAIL_URL2 = private static final String THUMBNAIL_URL2 =
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"; "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU";
private static final String GCM_TOKEN = "dummy_gcm_token";
// Returns a small PNG image data. // Returns a small PNG image data.
private static byte[] testImageData() { private static byte[] testImageData() {
...@@ -256,9 +255,7 @@ public class PrefetchFeedFlowTest implements WebServer.RequestHandler { ...@@ -256,9 +255,7 @@ public class PrefetchFeedFlowTest implements WebServer.RequestHandler {
PrefetchBackgroundTask task = new PrefetchBackgroundTask(); PrefetchBackgroundTask task = new PrefetchBackgroundTask();
TestThreadUtils.runOnUiThreadBlocking(() -> { TestThreadUtils.runOnUiThreadBlocking(() -> {
TaskParameters.Builder builder = TaskParameters.Builder builder =
TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID);
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(
GCM_TOKEN));
PrefetchBackgroundTask.skipConditionCheckingForTesting(); PrefetchBackgroundTask.skipConditionCheckingForTesting();
task.onStartTask(ContextUtils.getApplicationContext(), builder.build(), task.onStartTask(ContextUtils.getApplicationContext(), builder.build(),
(boolean needsReschedule) -> { finished.notifyCalled(); }); (boolean needsReschedule) -> { finished.notifyCalled(); });
......
...@@ -62,7 +62,6 @@ import java.util.concurrent.TimeoutException; ...@@ -62,7 +62,6 @@ import java.util.concurrent.TimeoutException;
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
public class PrefetchFlowTest implements WebServer.RequestHandler { public class PrefetchFlowTest implements WebServer.RequestHandler {
private static final String TAG = "PrefetchFlowTest"; private static final String TAG = "PrefetchFlowTest";
private static final String GCM_TOKEN = "dummy_gcm_token";
private TestOfflinePageService mOPS = new TestOfflinePageService(); private TestOfflinePageService mOPS = new TestOfflinePageService();
private TestSuggestionsService mSuggestionsService = new TestSuggestionsService(); private TestSuggestionsService mSuggestionsService = new TestSuggestionsService();
private WebServer mServer; private WebServer mServer;
...@@ -169,9 +168,7 @@ public class PrefetchFlowTest implements WebServer.RequestHandler { ...@@ -169,9 +168,7 @@ public class PrefetchFlowTest implements WebServer.RequestHandler {
PrefetchBackgroundTask task = new PrefetchBackgroundTask(); PrefetchBackgroundTask task = new PrefetchBackgroundTask();
TestThreadUtils.runOnUiThreadBlocking(() -> { TestThreadUtils.runOnUiThreadBlocking(() -> {
TaskParameters.Builder builder = TaskParameters.Builder builder =
TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID);
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(
GCM_TOKEN));
PrefetchBackgroundTask.skipConditionCheckingForTesting(); PrefetchBackgroundTask.skipConditionCheckingForTesting();
task.onStartTask(ContextUtils.getApplicationContext(), builder.build(), task.onStartTask(ContextUtils.getApplicationContext(), builder.build(),
(boolean needsReschedule) -> { finished.notifyCalled(); }); (boolean needsReschedule) -> { finished.notifyCalled(); });
......
...@@ -90,7 +90,6 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -90,7 +90,6 @@ public class PrefetchBackgroundTaskUnitTest {
public static final int HIGH_BATTERY_LEVEL = 75; public static final int HIGH_BATTERY_LEVEL = 75;
public static final int LOW_BATTERY_LEVEL = 25; public static final int LOW_BATTERY_LEVEL = 25;
public static final boolean METERED = true; public static final boolean METERED = true;
private static final String GCM_TOKEN = "dummy_gcm_token";
@Spy @Spy
private PrefetchBackgroundTask mPrefetchBackgroundTask = new PrefetchBackgroundTask(); private PrefetchBackgroundTask mPrefetchBackgroundTask = new PrefetchBackgroundTask();
...@@ -128,7 +127,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -128,7 +127,7 @@ public class PrefetchBackgroundTaskUnitTest {
} }
}) })
.when(mPrefetchBackgroundTask) .when(mPrefetchBackgroundTask)
.nativeStartPrefetchTask(eq(GCM_TOKEN)); .nativeStartPrefetchTask();
doReturn(true).when(mPrefetchBackgroundTask).nativeOnStopTask(1); doReturn(true).when(mPrefetchBackgroundTask).nativeOnStopTask(1);
mFakeTaskScheduler = new FakeBackgroundTaskScheduler(); mFakeTaskScheduler = new FakeBackgroundTaskScheduler();
...@@ -138,7 +137,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -138,7 +137,7 @@ public class PrefetchBackgroundTaskUnitTest {
@Test @Test
public void scheduleTask() { public void scheduleTask() {
final int additionalDelaySeconds = 15; final int additionalDelaySeconds = 15;
PrefetchBackgroundTaskScheduler.scheduleTask(additionalDelaySeconds, GCM_TOKEN); PrefetchBackgroundTaskScheduler.scheduleTask(additionalDelaySeconds);
TaskInfo scheduledTask = TaskInfo scheduledTask =
mFakeTaskScheduler.getTaskInfo(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID); mFakeTaskScheduler.getTaskInfo(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID);
assertNotNull(scheduledTask); assertNotNull(scheduledTask);
...@@ -157,7 +156,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -157,7 +156,7 @@ public class PrefetchBackgroundTaskUnitTest {
@Test @Test
public void scheduleTaskLimitless() { public void scheduleTaskLimitless() {
final int additionalDelaySeconds = 20; final int additionalDelaySeconds = 20;
PrefetchBackgroundTaskScheduler.scheduleTaskLimitless(additionalDelaySeconds, GCM_TOKEN); PrefetchBackgroundTaskScheduler.scheduleTaskLimitless(additionalDelaySeconds);
TaskInfo scheduledTask = TaskInfo scheduledTask =
mFakeTaskScheduler.getTaskInfo(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID); mFakeTaskScheduler.getTaskInfo(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID);
assertNotNull(scheduledTask); assertNotNull(scheduledTask);
...@@ -175,7 +174,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -175,7 +174,7 @@ public class PrefetchBackgroundTaskUnitTest {
mFakeTaskScheduler.getTaskInfo(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID); mFakeTaskScheduler.getTaskInfo(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID);
assertNull(scheduledTask); assertNull(scheduledTask);
PrefetchBackgroundTaskScheduler.scheduleTask(0, GCM_TOKEN); PrefetchBackgroundTaskScheduler.scheduleTask(0);
scheduledTask = mFakeTaskScheduler.getTaskInfo(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID); scheduledTask = mFakeTaskScheduler.getTaskInfo(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID);
assertNotNull(scheduledTask); assertNotNull(scheduledTask);
assertEquals(TimeUnit.SECONDS.toMillis( assertEquals(TimeUnit.SECONDS.toMillis(
...@@ -191,9 +190,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -191,9 +190,7 @@ public class PrefetchBackgroundTaskUnitTest {
public void createNativeTask() { public void createNativeTask() {
final ArrayList<Boolean> reschedules = new ArrayList<>(); final ArrayList<Boolean> reschedules = new ArrayList<>();
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
// Setup battery conditions with no power connected. // Setup battery conditions with no power connected.
DeviceConditions deviceConditions = DeviceConditions deviceConditions =
...@@ -220,7 +217,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -220,7 +217,7 @@ public class PrefetchBackgroundTaskUnitTest {
@Test @Test
public void createNativeTaskLimitless() { public void createNativeTaskLimitless() {
final ArrayList<Boolean> reschedules = new ArrayList<>(); final ArrayList<Boolean> reschedules = new ArrayList<>();
Bundle extrasBundle = PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN); Bundle extrasBundle = new Bundle();
extrasBundle.putBoolean(PrefetchBackgroundTask.LIMITLESS_BUNDLE_KEY, true); extrasBundle.putBoolean(PrefetchBackgroundTask.LIMITLESS_BUNDLE_KEY, true);
TaskParameters params = TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID) TaskParameters params = TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID)
.addExtras(extrasBundle) .addExtras(extrasBundle)
...@@ -252,9 +249,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -252,9 +249,7 @@ public class PrefetchBackgroundTaskUnitTest {
// Check impact on starting before native loaded. // Check impact on starting before native loaded.
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded( int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded(
RuntimeEnvironment.application, params, new TaskFinishedCallback() { RuntimeEnvironment.application, params, new TaskFinishedCallback() {
...@@ -275,9 +270,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -275,9 +270,7 @@ public class PrefetchBackgroundTaskUnitTest {
// Check impact on starting before native loaded. // Check impact on starting before native loaded.
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded( int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded(
RuntimeEnvironment.application, params, new TaskFinishedCallback() { RuntimeEnvironment.application, params, new TaskFinishedCallback() {
...@@ -298,9 +291,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -298,9 +291,7 @@ public class PrefetchBackgroundTaskUnitTest {
// Check impact on starting before native loaded. // Check impact on starting before native loaded.
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded( int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded(
RuntimeEnvironment.application, params, new TaskFinishedCallback() { RuntimeEnvironment.application, params, new TaskFinishedCallback() {
...@@ -325,7 +316,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -325,7 +316,7 @@ public class PrefetchBackgroundTaskUnitTest {
ShadowDeviceConditions.setCurrentConditions(deviceConditionsNoNetwork); ShadowDeviceConditions.setCurrentConditions(deviceConditionsNoNetwork);
// Check impact on starting before native loaded. // Check impact on starting before native loaded.
Bundle extrasBundle = PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN); Bundle extrasBundle = new Bundle();
extrasBundle.putBoolean(PrefetchBackgroundTask.LIMITLESS_BUNDLE_KEY, true); extrasBundle.putBoolean(PrefetchBackgroundTask.LIMITLESS_BUNDLE_KEY, true);
TaskParameters params = TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID) TaskParameters params = TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID)
.addExtras(extrasBundle) .addExtras(extrasBundle)
...@@ -350,9 +341,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -350,9 +341,7 @@ public class PrefetchBackgroundTaskUnitTest {
// Check impact on starting before native loaded. // Check impact on starting before native loaded.
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded( int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded(
RuntimeEnvironment.application, params, new TaskFinishedCallback() { RuntimeEnvironment.application, params, new TaskFinishedCallback() {
...@@ -373,9 +362,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -373,9 +362,7 @@ public class PrefetchBackgroundTaskUnitTest {
// Check impact on starting before native loaded. // Check impact on starting before native loaded.
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded( int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded(
RuntimeEnvironment.application, params, new TaskFinishedCallback() { RuntimeEnvironment.application, params, new TaskFinishedCallback() {
...@@ -397,9 +384,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -397,9 +384,7 @@ public class PrefetchBackgroundTaskUnitTest {
// Check impact on starting before native loaded. // Check impact on starting before native loaded.
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded( int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded(
RuntimeEnvironment.application, params, new TaskFinishedCallback() { RuntimeEnvironment.application, params, new TaskFinishedCallback() {
...@@ -421,9 +406,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -421,9 +406,7 @@ public class PrefetchBackgroundTaskUnitTest {
// Check impact on starting before native loaded. // Check impact on starting before native loaded.
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded( int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded(
RuntimeEnvironment.application, params, new TaskFinishedCallback() { RuntimeEnvironment.application, params, new TaskFinishedCallback() {
...@@ -439,9 +422,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -439,9 +422,7 @@ public class PrefetchBackgroundTaskUnitTest {
public void testOnStopAfterCallback() throws Exception { public void testOnStopAfterCallback() throws Exception {
final ArrayList<Boolean> reschedules = new ArrayList<>(); final ArrayList<Boolean> reschedules = new ArrayList<>();
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
// Conditions should be appropriate for running the task. // Conditions should be appropriate for running the task.
DeviceConditions deviceConditions = DeviceConditions deviceConditions =
...@@ -471,9 +452,7 @@ public class PrefetchBackgroundTaskUnitTest { ...@@ -471,9 +452,7 @@ public class PrefetchBackgroundTaskUnitTest {
// Check impact on starting before native loaded. // Check impact on starting before native loaded.
TaskParameters params = TaskParameters params =
TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID) TaskParameters.create(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID).build();
.addExtras(PrefetchBackgroundTaskScheduler.createGCMTokenBundle(GCM_TOKEN))
.build();
int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded( int result = mPrefetchBackgroundTask.onStartTaskBeforeNativeLoaded(
RuntimeEnvironment.application, params, new TaskFinishedCallback() { RuntimeEnvironment.application, params, new TaskFinishedCallback() {
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#include <memory> #include <memory>
#include "base/android/jni_string.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "chrome/browser/android/profile_key_util.h" #include "chrome/browser/android/profile_key_util.h"
...@@ -27,9 +26,7 @@ namespace prefetch { ...@@ -27,9 +26,7 @@ namespace prefetch {
// JNI call to start request processing in scheduled mode. // JNI call to start request processing in scheduled mode.
static jboolean JNI_PrefetchBackgroundTask_StartPrefetchTask( static jboolean JNI_PrefetchBackgroundTask_StartPrefetchTask(
JNIEnv* env, JNIEnv* env,
const JavaParamRef<jobject>& jcaller, const JavaParamRef<jobject>& jcaller) {
// TODO(https://crbug.com/972218): remove unused param
const JavaParamRef<jstring>& gcm_token) {
ProfileKey* profile_key = ::android::GetMainProfileKey(); ProfileKey* profile_key = ::android::GetMainProfileKey();
DCHECK(profile_key); DCHECK(profile_key);
......
...@@ -6,28 +6,23 @@ ...@@ -6,28 +6,23 @@
#include <memory> #include <memory>
#include "base/android/jni_string.h"
#include "jni/PrefetchBackgroundTaskScheduler_jni.h" #include "jni/PrefetchBackgroundTaskScheduler_jni.h"
namespace offline_pages { namespace offline_pages {
// static // static
void PrefetchBackgroundTaskScheduler::Schedule(int additional_delay_seconds, void PrefetchBackgroundTaskScheduler::Schedule(int additional_delay_seconds) {
const std::string& gcm_token) {
JNIEnv* env = base::android::AttachCurrentThread(); JNIEnv* env = base::android::AttachCurrentThread();
prefetch::Java_PrefetchBackgroundTaskScheduler_scheduleTask( prefetch::Java_PrefetchBackgroundTaskScheduler_scheduleTask(
env, additional_delay_seconds, env, additional_delay_seconds);
base::android::ConvertUTF8ToJavaString(env, gcm_token));
} }
// static // static
void PrefetchBackgroundTaskScheduler::ScheduleLimitless( void PrefetchBackgroundTaskScheduler::ScheduleLimitless(
int additional_delay_seconds, int additional_delay_seconds) {
const std::string& gcm_token) {
JNIEnv* env = base::android::AttachCurrentThread(); JNIEnv* env = base::android::AttachCurrentThread();
prefetch::Java_PrefetchBackgroundTaskScheduler_scheduleTaskLimitless( prefetch::Java_PrefetchBackgroundTaskScheduler_scheduleTaskLimitless(
env, additional_delay_seconds, env, additional_delay_seconds);
base::android::ConvertUTF8ToJavaString(env, gcm_token));
} }
// static // static
......
...@@ -40,14 +40,12 @@ void PrefetchBackgroundTaskHandlerImpl::CancelBackgroundTask() { ...@@ -40,14 +40,12 @@ void PrefetchBackgroundTaskHandlerImpl::CancelBackgroundTask() {
PrefetchBackgroundTaskScheduler::Cancel(); PrefetchBackgroundTaskScheduler::Cancel();
} }
void PrefetchBackgroundTaskHandlerImpl::EnsureTaskScheduled( void PrefetchBackgroundTaskHandlerImpl::EnsureTaskScheduled() {
const std::string& gcm_token) {
if (prefetch_prefs::IsLimitlessPrefetchingEnabled(prefs_)) { if (prefetch_prefs::IsLimitlessPrefetchingEnabled(prefs_)) {
PrefetchBackgroundTaskScheduler::ScheduleLimitless( PrefetchBackgroundTaskScheduler::ScheduleLimitless(
GetAdditionalBackoffSeconds(), gcm_token); GetAdditionalBackoffSeconds());
} else { } else {
PrefetchBackgroundTaskScheduler::Schedule(GetAdditionalBackoffSeconds(), PrefetchBackgroundTaskScheduler::Schedule(GetAdditionalBackoffSeconds());
gcm_token);
} }
} }
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
#define CHROME_BROWSER_OFFLINE_PAGES_PREFETCH_PREFETCH_BACKGROUND_TASK_HANDLER_IMPL_H_ #define CHROME_BROWSER_OFFLINE_PAGES_PREFETCH_PREFETCH_BACKGROUND_TASK_HANDLER_IMPL_H_
#include <memory> #include <memory>
#include <string>
#include "base/macros.h" #include "base/macros.h"
#include "components/offline_pages/core/prefetch/prefetch_background_task_handler.h" #include "components/offline_pages/core/prefetch/prefetch_background_task_handler.h"
...@@ -45,7 +44,7 @@ class PrefetchBackgroundTaskHandlerImpl : public PrefetchBackgroundTaskHandler { ...@@ -45,7 +44,7 @@ class PrefetchBackgroundTaskHandlerImpl : public PrefetchBackgroundTaskHandler {
// PrefetchBackgroundTaskHandler implementation. // PrefetchBackgroundTaskHandler implementation.
void CancelBackgroundTask() override; void CancelBackgroundTask() override;
void EnsureTaskScheduled(const std::string& gcm_token) override; void EnsureTaskScheduled() override;
// Backoff control. These functions directly modify/read prefs. // Backoff control. These functions directly modify/read prefs.
void Backoff() override; void Backoff() override;
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
#ifndef CHROME_BROWSER_OFFLINE_PAGES_PREFETCH_PREFETCH_BACKGROUND_TASK_SCHEDULER_H_ #ifndef CHROME_BROWSER_OFFLINE_PAGES_PREFETCH_PREFETCH_BACKGROUND_TASK_SCHEDULER_H_
#define CHROME_BROWSER_OFFLINE_PAGES_PREFETCH_PREFETCH_BACKGROUND_TASK_SCHEDULER_H_ #define CHROME_BROWSER_OFFLINE_PAGES_PREFETCH_PREFETCH_BACKGROUND_TASK_SCHEDULER_H_
#include <string>
namespace offline_pages { namespace offline_pages {
class PrefetchBackgroundTaskScheduler { class PrefetchBackgroundTaskScheduler {
...@@ -14,17 +12,13 @@ class PrefetchBackgroundTaskScheduler { ...@@ -14,17 +12,13 @@ class PrefetchBackgroundTaskScheduler {
// API for interacting with BackgroundTaskScheduler from native. // API for interacting with BackgroundTaskScheduler from native.
// Schedules the default 'NWake' prefetching task. // Schedules the default 'NWake' prefetching task.
// |additional_delay_seconds| is relative to the default 15 minute delay. // |additional_delay_seconds| is relative to the default 15 minute delay.
// |gcm_token| is used so as to not require GCM handler when chrome wakes up
// for the background task.
// Implemented in platform-specific object files. // Implemented in platform-specific object files.
static void Schedule(int additional_delay_seconds, static void Schedule(int additional_delay_seconds);
const std::string& gcm_token);
// Same as |Schedule| but adapted to when limitless prefetching is enabled so // Same as |Schedule| but adapted to when limitless prefetching is enabled so
// that less restrictions are applied to the scheduling of the background // that less restrictions are applied to the scheduling of the background
// task. // task.
static void ScheduleLimitless(int additional_delay_seconds, static void ScheduleLimitless(int additional_delay_seconds);
const std::string& gcm_token);
// Cancels the default 'NWake' prefetching task. // Cancels the default 'NWake' prefetching task.
// Implemented in platform-specific object files. // Implemented in platform-specific object files.
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include "components/offline_pages/core/prefetch/prefetch_background_task_handler.h" #include "components/offline_pages/core/prefetch/prefetch_background_task_handler.h"
#include "components/offline_pages/core/prefetch/prefetch_dispatcher.h" #include "components/offline_pages/core/prefetch/prefetch_dispatcher.h"
#include "components/offline_pages/core/prefetch/prefetch_downloader.h" #include "components/offline_pages/core/prefetch/prefetch_downloader.h"
#include "components/offline_pages/core/prefetch/prefetch_gcm_handler.h"
#include "components/offline_pages/core/prefetch/prefetch_prefs.h" #include "components/offline_pages/core/prefetch/prefetch_prefs.h"
#include "components/offline_pages/core/prefetch/prefetch_service.h" #include "components/offline_pages/core/prefetch/prefetch_service.h"
#include "components/offline_pages/core/prefetch/prefetch_types.h" #include "components/offline_pages/core/prefetch/prefetch_types.h"
...@@ -266,8 +265,8 @@ void OfflineInternalsUIMessageHandler::HandleScheduleNwake( ...@@ -266,8 +265,8 @@ void OfflineInternalsUIMessageHandler::HandleScheduleNwake(
if (prefetch_service_) { if (prefetch_service_) {
prefetch_service_->ForceRefreshSuggestions(); prefetch_service_->ForceRefreshSuggestions();
prefetch_service_->GetPrefetchBackgroundTaskHandler()->EnsureTaskScheduled( prefetch_service_->GetPrefetchBackgroundTaskHandler()
prefetch_service_->GetCachedGCMToken()); ->EnsureTaskScheduled();
ResolveJavascriptCallback(*callback_id, base::Value("Scheduled.")); ResolveJavascriptCallback(*callback_id, base::Value("Scheduled."));
} else { } else {
RejectJavascriptCallback(*callback_id, RejectJavascriptCallback(*callback_id,
......
...@@ -38,10 +38,8 @@ PrefetchBackgroundTask::~PrefetchBackgroundTask() { ...@@ -38,10 +38,8 @@ PrefetchBackgroundTask::~PrefetchBackgroundTask() {
break; break;
} }
if (reschedule_type_ != PrefetchBackgroundTaskRescheduleType::NO_RESCHEDULE) { if (reschedule_type_ != PrefetchBackgroundTaskRescheduleType::NO_RESCHEDULE)
DCHECK(!service_->GetCachedGCMToken().empty()); handler->EnsureTaskScheduled();
handler->EnsureTaskScheduled(service_->GetCachedGCMToken());
}
} }
void PrefetchBackgroundTask::SetReschedule( void PrefetchBackgroundTask::SetReschedule(
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
#define COMPONENTS_OFFLINE_PAGES_CORE_PREFETCH_PREFETCH_BACKGROUND_TASK_HANDLER_H_ #define COMPONENTS_OFFLINE_PAGES_CORE_PREFETCH_PREFETCH_BACKGROUND_TASK_HANDLER_H_
#include <memory> #include <memory>
#include <string>
namespace offline_pages { namespace offline_pages {
...@@ -20,7 +19,7 @@ class PrefetchBackgroundTaskHandler { ...@@ -20,7 +19,7 @@ class PrefetchBackgroundTaskHandler {
// Ensures that Chrome will be started using a background task at an // Ensures that Chrome will be started using a background task at an
// appropriate time in the future. // appropriate time in the future.
virtual void EnsureTaskScheduled(const std::string& gcm_token) = 0; virtual void EnsureTaskScheduled() = 0;
// Requests that the network backoff be increased due to a server response. // Requests that the network backoff be increased due to a server response.
virtual void Backoff() = 0; virtual void Backoff() = 0;
......
...@@ -91,8 +91,7 @@ void PrefetchDispatcherImpl::EnsureTaskScheduled() { ...@@ -91,8 +91,7 @@ void PrefetchDispatcherImpl::EnsureTaskScheduled() {
background_task_->SetReschedule( background_task_->SetReschedule(
PrefetchBackgroundTaskRescheduleType::RESCHEDULE_WITHOUT_BACKOFF); PrefetchBackgroundTaskRescheduleType::RESCHEDULE_WITHOUT_BACKOFF);
} else { } else {
service_->GetPrefetchBackgroundTaskHandler()->EnsureTaskScheduled( service_->GetPrefetchBackgroundTaskHandler()->EnsureTaskScheduled();
service_->GetCachedGCMToken());
} }
} }
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include <string> #include <string>
#include "base/callback.h" #include "base/callback.h"
#include "base/memory/weak_ptr.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
class GURL; class GURL;
......
...@@ -46,7 +46,7 @@ class StubPrefetchBackgroundTaskHandler : public PrefetchBackgroundTaskHandler { ...@@ -46,7 +46,7 @@ class StubPrefetchBackgroundTaskHandler : public PrefetchBackgroundTaskHandler {
StubPrefetchBackgroundTaskHandler() = default; StubPrefetchBackgroundTaskHandler() = default;
~StubPrefetchBackgroundTaskHandler() override = default; ~StubPrefetchBackgroundTaskHandler() override = default;
void CancelBackgroundTask() override {} void CancelBackgroundTask() override {}
void EnsureTaskScheduled(const std::string& gcm_token) override {} void EnsureTaskScheduled() override {}
void Backoff() override {} void Backoff() override {}
void ResetBackoff() override {} void ResetBackoff() override {}
void PauseBackoffUntilNextRun() override {} void PauseBackoffUntilNextRun() override {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment