Commit bbbf3e20 authored by Sky Malice's avatar Sky Malice Committed by Commit Bot

Revert "[Feed] Call simple triggerRefresh method."

This reverts commit 18d4c919.

Reason for revert: getUpdateConsumer() would initialize some part of the Feed that needed to be initialized. An uninitialized Feed drops requests on the floor. This caused refresh requests to be ignored.

Original change's description:
> [Feed] Call simple triggerRefresh method.
> 
> Bug: 933395
> Change-Id: I2b76b43f15c695449c6af30db0992b386fd02222
> Reviewed-on: https://chromium-review.googlesource.com/c/1476827
> Commit-Queue: Sky Malice <skym@chromium.org>
> Reviewed-by: Gang Wu <gangwu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#633351}

TBR=gangwu@chromium.org,skym@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 933395
Change-Id: Id047d0ac979ab3b36dd1e6c7c74d5b3f37c54cf9
Reviewed-on: https://chromium-review.googlesource.com/c/1490492Reviewed-by: default avatarSky Malice <skym@chromium.org>
Commit-Queue: Sky Malice <skym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#635781}
parent 5dd95606
......@@ -148,7 +148,8 @@ public class FeedProcessScopeFactory {
.setContentStorage(contentStorage)
.setJournalStorage(journalStorage)
.build();
schedulerBridge.initializeFeedDependencies(sFeedProcessScope.getRequestManager());
schedulerBridge.initializeFeedDependencies(
sFeedProcessScope.getRequestManager(), sFeedProcessScope.getSessionManager());
sFeedOfflineIndicator =
new FeedOfflineBridge(profile, sFeedProcessScope.getKnownContentApi());
......
......@@ -6,7 +6,9 @@ package org.chromium.chrome.browser.feed;
import android.support.annotation.NonNull;
import com.google.android.libraries.feed.api.common.MutationContext;
import com.google.android.libraries.feed.api.requestmanager.RequestManager;
import com.google.android.libraries.feed.api.sessionmanager.SessionManager;
import com.google.android.libraries.feed.host.scheduler.SchedulerApi;
import com.google.search.now.wire.feed.FeedQueryProto.FeedQuery.RequestReason;
......@@ -22,6 +24,7 @@ import org.chromium.components.feed.NativeRequestBehavior;
public class FeedSchedulerBridge implements FeedScheduler {
private long mNativeBridge;
private RequestManager mRequestManager;
private SessionManager mSessionManager;
/**
* Creates a FeedSchedulerBridge for accessing native scheduling logic.
......@@ -43,13 +46,17 @@ public class FeedSchedulerBridge implements FeedScheduler {
* Sets our copies for various interfaces provided by the Feed library. Should be done as early
* as possible, as the scheduler will be unable to trigger refreshes until after it has the
* mechanisms to correctly do so. When this is called, it is assumed that the given
* RequestManager is initialized and can be used immediately.
* RequestManager and SessionManager are initialized and can be used immediately.
*
* @param requestManager The interface that allows us make refresh requests.
* @param sessionManager The interface that provides correct consumtion of refresh results.
*/
public void initializeFeedDependencies(@NonNull RequestManager requestManager) {
public void initializeFeedDependencies(
@NonNull RequestManager requestManager, @NonNull SessionManager sessionManager) {
assert mRequestManager == null;
assert mSessionManager == null;
mRequestManager = requestManager;
mSessionManager = sessionManager;
}
@Override
......@@ -123,8 +130,9 @@ public class FeedSchedulerBridge implements FeedScheduler {
@CalledByNative
private boolean triggerRefresh() {
if (mRequestManager != null) {
mRequestManager.triggerRefresh(RequestReason.SCHEDULED_REFRESH);
if (mRequestManager != null && mSessionManager != null) {
mRequestManager.triggerRefresh(RequestReason.SCHEDULED_REFRESH,
mSessionManager.getUpdateConsumer(MutationContext.EMPTY_CONTEXT));
return true;
}
return false;
......
......@@ -8,6 +8,7 @@ import android.support.test.filters.SmallTest;
import android.support.test.rule.UiThreadTestRule;
import com.google.android.libraries.feed.api.requestmanager.RequestManager;
import com.google.android.libraries.feed.api.sessionmanager.SessionManager;
import com.google.android.libraries.feed.testing.conformance.scheduler.SchedulerConformanceTest;
import org.junit.After;
......@@ -57,6 +58,8 @@ public final class FeedSchedulerBridgeConformanceTest extends SchedulerConforman
@Mock
private RequestManager mRequestManager;
@Mock
private SessionManager mSessionManager;
private boolean mUseRequestManager;
public FeedSchedulerBridgeConformanceTest(boolean useRequestManager) {
......@@ -68,7 +71,8 @@ public final class FeedSchedulerBridgeConformanceTest extends SchedulerConforman
// The scheduler is declared and tested in SchedulerConformanceTest.
scheduler = new FeedSchedulerBridge(Profile.getLastUsedProfile());
if (mUseRequestManager) {
((FeedSchedulerBridge) scheduler).initializeFeedDependencies(mRequestManager);
((FeedSchedulerBridge) scheduler)
.initializeFeedDependencies(mRequestManager, mSessionManager);
}
}
......
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