Commit ce73a63f authored by peconn's avatar peconn Committed by Commit bot

Moved Field Trial related code to CardsFieldTrial.

BUG=622975

Review-Url: https://codereview.chromium.org/2323703003
Cr-Commit-Position: refs/heads/master@{#417325}
parent 709cafa5
...@@ -91,10 +91,6 @@ public class NewTabPage ...@@ -91,10 +91,6 @@ public class NewTabPage
static final int ID_OPEN_IN_INCOGNITO_TAB = 2; static final int ID_OPEN_IN_INCOGNITO_TAB = 2;
static final int ID_REMOVE = 3; static final int ID_REMOVE = 3;
// The name of the trial for obtaining variation parameters for the ntp snippets feature. Also
// defined in ntp_snippets_constants.cc.
public static final String FIELD_TRIAL_NAME = "NTPSnippets";
// UMA enum constants. CTA means the "click-to-action" icon. // UMA enum constants. CTA means the "click-to-action" icon.
private static final String LOGO_SHOWN_UMA_NAME = "NewTabPage.LogoShown"; private static final String LOGO_SHOWN_UMA_NAME = "NewTabPage.LogoShown";
private static final int STATIC_LOGO_SHOWN = 0; private static final int STATIC_LOGO_SHOWN = 0;
......
...@@ -12,7 +12,7 @@ import android.view.View; ...@@ -12,7 +12,7 @@ import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ntp.cards.CardsFieldTrial; import org.chromium.chrome.browser.ntp.cards.CardsVariationParameters;
import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView; import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView;
/** /**
...@@ -73,7 +73,7 @@ public class NewTabPageLayout extends LinearLayout { ...@@ -73,7 +73,7 @@ public class NewTabPageLayout extends LinearLayout {
res.getDimensionPixelSize(R.dimen.snippets_padding_and_peeking_card_height); res.getDimensionPixelSize(R.dimen.snippets_padding_and_peeking_card_height);
mTabStripHeight = res.getDimensionPixelSize(R.dimen.tab_strip_height); mTabStripHeight = res.getDimensionPixelSize(R.dimen.tab_strip_height);
mFieldTrialLayoutAdjustment = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, mFieldTrialLayoutAdjustment = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
CardsFieldTrial.getFirstCardOffsetDp(), res.getDisplayMetrics()); CardsVariationParameters.getFirstCardOffsetDp(), res.getDisplayMetrics());
} }
@Override @Override
......
...@@ -8,19 +8,23 @@ import android.text.TextUtils; ...@@ -8,19 +8,23 @@ import android.text.TextUtils;
import org.chromium.base.CommandLine; import org.chromium.base.CommandLine;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.chrome.browser.ntp.NewTabPage;
import org.chromium.components.variations.VariationsAssociatedData; import org.chromium.components.variations.VariationsAssociatedData;
/** /**
* Provides easy access to data for field trials to do with the Cards UI. * Provides easy access to data for field trials to do with the Cards UI.
*/ */
public final class CardsFieldTrial { public final class CardsVariationParameters {
private static final String TAG = "CardFinchExperiments"; // Tags are limited to 20 characters.
private static final String TAG = "CardsVariationParams";
// TODO(peconn): Move NewTabPage.FIELD_TRIAL_NAME and all uses into this class. // Also defined in ntp_snippets_constants.cc
private static final String FIRST_CARD_OFFSET = "first_card_offset"; private static final String FIELD_TRIAL_NAME = "NTPSnippets";
private CardsFieldTrial() { private static final String PARAM_FIRST_CARD_OFFSET = "first_card_offset";
private static final String PARAM_FAVICON_SERVICE_NAME = "favicons_fetch_from_service";
private static final String PARAM_DISABLED_VALUE = "off";
private CardsVariationParameters() {
} }
/** /**
...@@ -28,11 +32,12 @@ public final class CardsFieldTrial { ...@@ -28,11 +32,12 @@ public final class CardsFieldTrial {
* with a command line flag). It will return 0 if there is no such field trial. * with a command line flag). It will return 0 if there is no such field trial.
*/ */
public static int getFirstCardOffsetDp() { public static int getFirstCardOffsetDp() {
String value = CommandLine.getInstance().getSwitchValue(FIRST_CARD_OFFSET); String value = CommandLine.getInstance().getSwitchValue(PARAM_FIRST_CARD_OFFSET);
if (TextUtils.isEmpty(value)) { if (TextUtils.isEmpty(value)) {
value = VariationsAssociatedData.getVariationParamValue(NewTabPage.FIELD_TRIAL_NAME, // TODO(jkrcal): Get parameter by feature name, not field trial name.
FIRST_CARD_OFFSET); value = VariationsAssociatedData.getVariationParamValue(FIELD_TRIAL_NAME,
PARAM_FIRST_CARD_OFFSET);
} }
if (!TextUtils.isEmpty(value)) { if (!TextUtils.isEmpty(value)) {
...@@ -45,4 +50,9 @@ public final class CardsFieldTrial { ...@@ -45,4 +50,9 @@ public final class CardsFieldTrial {
return 0; return 0;
} }
public static boolean isFaviconServiceEnabled() {
return !PARAM_DISABLED_VALUE.equals(VariationsAssociatedData.getVariationParamValue(
FIELD_TRIAL_NAME, PARAM_FAVICON_SERVICE_NAME));
}
} }
...@@ -241,7 +241,7 @@ public class NewTabPageRecyclerView extends RecyclerView { ...@@ -241,7 +241,7 @@ public class NewTabPageRecyclerView extends RecyclerView {
} }
// If we have the card offset field trial enabled, don't peek at all. // If we have the card offset field trial enabled, don't peek at all.
if (CardsFieldTrial.getFirstCardOffsetDp() != 0) { if (CardsVariationParameters.getFirstCardOffsetDp() != 0) {
peekingCard.updatePeek(0, /* shouldAnimate */ false); peekingCard.updatePeek(0, /* shouldAnimate */ false);
return; return;
} }
......
...@@ -33,16 +33,15 @@ import org.chromium.chrome.R; ...@@ -33,16 +33,15 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback; import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback;
import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallback; import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallback;
import org.chromium.chrome.browser.ntp.DisplayStyleObserver; import org.chromium.chrome.browser.ntp.DisplayStyleObserver;
import org.chromium.chrome.browser.ntp.NewTabPage;
import org.chromium.chrome.browser.ntp.NewTabPageUma; import org.chromium.chrome.browser.ntp.NewTabPageUma;
import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
import org.chromium.chrome.browser.ntp.UiConfig; import org.chromium.chrome.browser.ntp.UiConfig;
import org.chromium.chrome.browser.ntp.cards.CardViewHolder; import org.chromium.chrome.browser.ntp.cards.CardViewHolder;
import org.chromium.chrome.browser.ntp.cards.CardsVariationParameters;
import org.chromium.chrome.browser.ntp.cards.DisplayStyleObserverAdapter; import org.chromium.chrome.browser.ntp.cards.DisplayStyleObserverAdapter;
import org.chromium.chrome.browser.ntp.cards.ImpressionTracker; import org.chromium.chrome.browser.ntp.cards.ImpressionTracker;
import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView; import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
import org.chromium.components.variations.VariationsAssociatedData;
import org.chromium.ui.WindowOpenDisposition; import org.chromium.ui.WindowOpenDisposition;
import java.net.URI; import java.net.URI;
...@@ -59,10 +58,6 @@ public class SnippetArticleViewHolder extends CardViewHolder implements Impressi ...@@ -59,10 +58,6 @@ public class SnippetArticleViewHolder extends CardViewHolder implements Impressi
private static final String FAVICON_SERVICE_FORMAT = private static final String FAVICON_SERVICE_FORMAT =
"https://s2.googleusercontent.com/s2/favicons?domain=%s&src=chrome_newtab_mobile&sz=%d&alt=404"; "https://s2.googleusercontent.com/s2/favicons?domain=%s&src=chrome_newtab_mobile&sz=%d&alt=404";
// The variation parameter to fetch the value from the favicon service.
private static final String PARAMETER_FAVICON_SERVICE_NAME = "favicons_fetch_from_service";
private static final String PARAMETER_DISABLED_VALUE = "off";
// ContextMenu item ids. These must be unique. // ContextMenu item ids. These must be unique.
private static final int ID_OPEN_IN_NEW_WINDOW = 0; private static final int ID_OPEN_IN_NEW_WINDOW = 0;
private static final int ID_OPEN_IN_NEW_TAB = 1; private static final int ID_OPEN_IN_NEW_TAB = 1;
...@@ -179,9 +174,7 @@ public class SnippetArticleViewHolder extends CardViewHolder implements Impressi ...@@ -179,9 +174,7 @@ public class SnippetArticleViewHolder extends CardViewHolder implements Impressi
} }
}); });
mUseFaviconService = mUseFaviconService = CardsVariationParameters.isFaviconServiceEnabled();
!PARAMETER_DISABLED_VALUE.equals(VariationsAssociatedData.getVariationParamValue(
NewTabPage.FIELD_TRIAL_NAME, PARAMETER_FAVICON_SERVICE_NAME));
} }
@Override @Override
......
...@@ -548,7 +548,7 @@ chrome_java_sources = [ ...@@ -548,7 +548,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/ntp/cards/AboveTheFoldItem.java", "java/src/org/chromium/chrome/browser/ntp/cards/AboveTheFoldItem.java",
"java/src/org/chromium/chrome/browser/ntp/cards/ActionItem.java", "java/src/org/chromium/chrome/browser/ntp/cards/ActionItem.java",
"java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java", "java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java",
"java/src/org/chromium/chrome/browser/ntp/cards/CardsFieldTrial.java", "java/src/org/chromium/chrome/browser/ntp/cards/CardsVariationParameters.java",
"java/src/org/chromium/chrome/browser/ntp/cards/DisplayStyleObserverAdapter.java", "java/src/org/chromium/chrome/browser/ntp/cards/DisplayStyleObserverAdapter.java",
"java/src/org/chromium/chrome/browser/ntp/cards/ImpressionTracker.java", "java/src/org/chromium/chrome/browser/ntp/cards/ImpressionTracker.java",
"java/src/org/chromium/chrome/browser/ntp/cards/ItemGroup.java", "java/src/org/chromium/chrome/browser/ntp/cards/ItemGroup.java",
......
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