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