Commit 8dfabd8a authored by Becky Zhou's avatar Becky Zhou Committed by Commit Bot

[Feed] Fix compile error and test crash when compiled with dummy version

Bug: 897502
Change-Id: If4e9c315c5742be40764e9a13f0d002acb96a43e
Reviewed-on: https://chromium-review.googlesource.com/c/1305821
Commit-Queue: Becky Zhou <huayinz@chromium.org>
Reviewed-by: default avatarTheresa <twellington@chromium.org>
Reviewed-by: default avatarSky Malice <skym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603696}
parent 5c8c1f9c
......@@ -417,6 +417,11 @@ public class FeedNewTabPage extends NewTabPage {
new NonDismissibleHeader(mSectionHeaderView)));
}
@VisibleForTesting
public static boolean isDummy() {
return false;
}
@VisibleForTesting
FeedNewTabPageMediator getMediatorForTesting() {
return mMediator;
......
......@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.feed;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.native_page.NativePageHost;
import org.chromium.chrome.browser.ntp.NewTabPage;
......@@ -23,4 +24,9 @@ public class FeedNewTabPage extends NewTabPage {
TabModelSelector tabModelSelector) {
super(activity, nativePageHost, tabModelSelector);
}
@VisibleForTesting
public static boolean isDummy() {
return true;
}
}
......@@ -8,8 +8,7 @@ import android.accounts.Account;
import android.os.Bundle;
import android.support.annotation.Nullable;
import com.google.android.libraries.feed.common.functional.Consumer;
import org.chromium.base.Callback;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.chrome.browser.autofill.PersonalDataManager;
......@@ -317,7 +316,7 @@ public class AutofillAssistantUiController implements AutofillAssistantUiDelegat
private final AutofillAssistantUiDelegate mUiDelegate;
private boolean mShouldQueueUiOperations = false;
private final ArrayList<Consumer<AutofillAssistantUiDelegate>> mPendingUiOperations =
private final ArrayList<Callback<AutofillAssistantUiDelegate>> mPendingUiOperations =
new ArrayList<>();
private UiDelegateHolder(AutofillAssistantUiDelegate uiDelegate) {
......@@ -333,13 +332,13 @@ public class AutofillAssistantUiController implements AutofillAssistantUiDelegat
}
/**
* Unpause and trigger all UI operations received by {@link #performUiOperation(Consumer)}
* Unpause and trigger all UI operations received by {@link #performUiOperation(Callback)}
* since the last {@link #pauseUiOperations()}.
*/
public void unpauseUiOperations() {
mShouldQueueUiOperations = false;
for (int i = 0; i < mPendingUiOperations.size(); i++) {
mPendingUiOperations.get(i).accept(mUiDelegate);
mPendingUiOperations.get(i).onResult(mUiDelegate);
}
mPendingUiOperations.clear();
}
......@@ -350,13 +349,13 @@ public class AutofillAssistantUiController implements AutofillAssistantUiDelegat
* - later if the shutdown is cancelled.
* - never if Autofill Assistant is shut down.
*/
public void performUiOperation(Consumer<AutofillAssistantUiDelegate> operation) {
public void performUiOperation(Callback<AutofillAssistantUiDelegate> operation) {
if (mShouldQueueUiOperations) {
mPendingUiOperations.add(operation);
return;
}
operation.accept(mUiDelegate);
operation.onResult(mUiDelegate);
}
}
......
......@@ -51,6 +51,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.UrlConstants;
import org.chromium.chrome.browser.feed.FeedNewTabPage;
import org.chromium.chrome.browser.feed.FeedProcessScopeFactory;
import org.chromium.chrome.browser.feed.TestNetworkClient;
import org.chromium.chrome.browser.native_page.ContextMenuManager;
......@@ -94,6 +95,7 @@ import org.chromium.ui.base.PageTransition;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
......@@ -121,8 +123,15 @@ public class NewTabPageTest {
public static class InterestFeedParams implements ParameterProvider {
@Override
public Iterable<ParameterSet> getParameters() {
return Arrays.asList(new ParameterSet().value(false).name("DisableInterestFeed"),
new ParameterSet().value(true).name("EnableInterestFeed"));
// Don't run tests for the dummy version of the FeedNewTabPage because content
// suggestions dependencies may not be initialized.
if (FeedNewTabPage.isDummy()) {
return Collections.singletonList(
new ParameterSet().value(false).name("DisableInterestFeed"));
} else {
return Arrays.asList(new ParameterSet().value(false).name("DisableInterestFeed"),
new ParameterSet().value(true).name("EnableInterestFeed"));
}
}
}
......
......@@ -28,15 +28,19 @@ using ntp_snippets::UserClassifier;
namespace {
UserClassifier* GetUserClassifier() {
void NotifyEvent(UserClassifier::Metric metric) {
ntp_snippets::ContentSuggestionsService* content_suggestions_service =
ContentSuggestionsServiceFactory::GetForProfile(
ProfileManager::GetLastUsedProfile());
// Can maybe be null in some cases? (Incognito profile?) crbug.com/647920
if (!content_suggestions_service) {
return nullptr;
UserClassifier* user_classifier =
content_suggestions_service
? content_suggestions_service->user_classifier()
: nullptr;
if (user_classifier) {
user_classifier->OnEvent(metric);
}
return content_suggestions_service->user_classifier();
}
} // namespace
......@@ -76,7 +80,7 @@ static void JNI_SuggestionsEventReporterBridge_OnPageShown(
ntp_snippets::metrics::OnPageShown(categories, suggestions_per_category,
is_category_visible);
GetUserClassifier()->OnEvent(UserClassifier::Metric::NTP_OPENED);
NotifyEvent(UserClassifier::Metric::NTP_OPENED);
}
static void JNI_SuggestionsEventReporterBridge_OnSuggestionShown(
......@@ -93,7 +97,7 @@ static void JNI_SuggestionsEventReporterBridge_OnSuggestionShown(
position_in_category, base::Time::FromJavaTime(publish_timestamp_ms),
score, base::Time::FromJavaTime(fetch_timestamp_ms));
if (global_position == 0) {
GetUserClassifier()->OnEvent(UserClassifier::Metric::SUGGESTIONS_SHOWN);
NotifyEvent(UserClassifier::Metric::SUGGESTIONS_SHOWN);
}
}
......@@ -155,7 +159,7 @@ static void JNI_SuggestionsEventReporterBridge_OnMoreButtonClicked(
jint position) {
ntp_snippets::metrics::OnMoreButtonClicked(
Category::FromIDValue(j_category_id), position);
GetUserClassifier()->OnEvent(UserClassifier::Metric::SUGGESTIONS_USED);
NotifyEvent(UserClassifier::Metric::SUGGESTIONS_USED);
}
static void JNI_SuggestionsEventReporterBridge_OnSurfaceOpened(
......
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