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 { ...@@ -148,7 +148,8 @@ public class FeedProcessScopeFactory {
.setContentStorage(contentStorage) .setContentStorage(contentStorage)
.setJournalStorage(journalStorage) .setJournalStorage(journalStorage)
.build(); .build();
schedulerBridge.initializeFeedDependencies(sFeedProcessScope.getRequestManager()); schedulerBridge.initializeFeedDependencies(
sFeedProcessScope.getRequestManager(), sFeedProcessScope.getSessionManager());
sFeedOfflineIndicator = sFeedOfflineIndicator =
new FeedOfflineBridge(profile, sFeedProcessScope.getKnownContentApi()); new FeedOfflineBridge(profile, sFeedProcessScope.getKnownContentApi());
......
...@@ -6,7 +6,9 @@ package org.chromium.chrome.browser.feed; ...@@ -6,7 +6,9 @@ package org.chromium.chrome.browser.feed;
import android.support.annotation.NonNull; 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.requestmanager.RequestManager;
import com.google.android.libraries.feed.api.sessionmanager.SessionManager;
import com.google.android.libraries.feed.host.scheduler.SchedulerApi; import com.google.android.libraries.feed.host.scheduler.SchedulerApi;
import com.google.search.now.wire.feed.FeedQueryProto.FeedQuery.RequestReason; import com.google.search.now.wire.feed.FeedQueryProto.FeedQuery.RequestReason;
...@@ -22,6 +24,7 @@ import org.chromium.components.feed.NativeRequestBehavior; ...@@ -22,6 +24,7 @@ import org.chromium.components.feed.NativeRequestBehavior;
public class FeedSchedulerBridge implements FeedScheduler { public class FeedSchedulerBridge implements FeedScheduler {
private long mNativeBridge; private long mNativeBridge;
private RequestManager mRequestManager; private RequestManager mRequestManager;
private SessionManager mSessionManager;
/** /**
* Creates a FeedSchedulerBridge for accessing native scheduling logic. * Creates a FeedSchedulerBridge for accessing native scheduling logic.
...@@ -43,13 +46,17 @@ public class FeedSchedulerBridge implements FeedScheduler { ...@@ -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 * 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 * 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 * 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 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 mRequestManager == null;
assert mSessionManager == null;
mRequestManager = requestManager; mRequestManager = requestManager;
mSessionManager = sessionManager;
} }
@Override @Override
...@@ -123,8 +130,9 @@ public class FeedSchedulerBridge implements FeedScheduler { ...@@ -123,8 +130,9 @@ public class FeedSchedulerBridge implements FeedScheduler {
@CalledByNative @CalledByNative
private boolean triggerRefresh() { private boolean triggerRefresh() {
if (mRequestManager != null) { if (mRequestManager != null && mSessionManager != null) {
mRequestManager.triggerRefresh(RequestReason.SCHEDULED_REFRESH); mRequestManager.triggerRefresh(RequestReason.SCHEDULED_REFRESH,
mSessionManager.getUpdateConsumer(MutationContext.EMPTY_CONTEXT));
return true; return true;
} }
return false; return false;
......
...@@ -8,6 +8,7 @@ import android.support.test.filters.SmallTest; ...@@ -8,6 +8,7 @@ import android.support.test.filters.SmallTest;
import android.support.test.rule.UiThreadTestRule; import android.support.test.rule.UiThreadTestRule;
import com.google.android.libraries.feed.api.requestmanager.RequestManager; 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 com.google.android.libraries.feed.testing.conformance.scheduler.SchedulerConformanceTest;
import org.junit.After; import org.junit.After;
...@@ -57,6 +58,8 @@ public final class FeedSchedulerBridgeConformanceTest extends SchedulerConforman ...@@ -57,6 +58,8 @@ public final class FeedSchedulerBridgeConformanceTest extends SchedulerConforman
@Mock @Mock
private RequestManager mRequestManager; private RequestManager mRequestManager;
@Mock
private SessionManager mSessionManager;
private boolean mUseRequestManager; private boolean mUseRequestManager;
public FeedSchedulerBridgeConformanceTest(boolean useRequestManager) { public FeedSchedulerBridgeConformanceTest(boolean useRequestManager) {
...@@ -68,7 +71,8 @@ public final class FeedSchedulerBridgeConformanceTest extends SchedulerConforman ...@@ -68,7 +71,8 @@ public final class FeedSchedulerBridgeConformanceTest extends SchedulerConforman
// The scheduler is declared and tested in SchedulerConformanceTest. // The scheduler is declared and tested in SchedulerConformanceTest.
scheduler = new FeedSchedulerBridge(Profile.getLastUsedProfile()); scheduler = new FeedSchedulerBridge(Profile.getLastUsedProfile());
if (mUseRequestManager) { 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