blob: 71e306f8a1102d992729e7650ae950409afc83f9 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_FEED_FEED_FEATURE_LIST_H_
#define COMPONENTS_FEED_FEED_FEATURE_LIST_H_
#include <string>
#include "base/feature_list.h"
#include "base/metrics/field_trial_params.h"
#include "build/build_config.h"
// TODO(crbug.com/1165828): Clean up feedv1 features.
namespace feed {
extern const base::Feature kInterestFeedContentSuggestions;
extern const base::Feature kInterestFeedV2;
extern const base::Feature kInterestFeedV2Autoplay;
extern const base::Feature kInterestFeedV2Hearts;
extern const base::Feature kInterestFeedV2Scrolling;
extern const base::FeatureParam<std::string> kDisableTriggerTypes;
extern const base::FeatureParam<int> kSuppressRefreshDurationMinutes;
extern const base::FeatureParam<int> kTimeoutDurationSeconds;
extern const base::FeatureParam<bool> kThrottleBackgroundFetches;
extern const base::FeatureParam<bool> kOnlySetLastRefreshAttemptOnSuccess;
// TODO(b/213622639): The following two features are obsolete and should be
// removed.
// Determines whether conditions should be reached before enabling the upload of
// click and view actions in the feed (e.g., the user needs to view X cards).
// For example, this is needed when the notice card is at the second position in
// the feed.
extern const base::Feature kInterestFeedV1ClicksAndViewsConditionalUpload;
extern const base::Feature kInterestFeedV2ClicksAndViewsConditionalUpload;
// Feature that allows the client to automatically dismiss the notice card based
// on the clicks and views on the notice card.
#if BUILDFLAG(IS_IOS)
extern const base::Feature kInterestFeedNoticeCardAutoDismiss;
#endif
// Used for A:B testing of a bug fix (crbug.com/1151391).
extern const base::Feature kInterestFeedSpinnerAlwaysAnimate;
// Feature that allows users to keep up with and consume web content.
extern const base::Feature kWebFeed;
// Use the new DiscoFeed endpoint.
extern const base::Feature kDiscoFeedEndpoint;
// Feature that enables xsurface to provide the metrics reporting state to an
// xsurface feed.
extern const base::Feature kXsurfaceMetricsReporting;
// Whether to log reliability events.
extern const base::Feature kReliabilityLogging;
// Feature that enables refreshing feeds triggered by the users.
extern const base::Feature kFeedInteractiveRefresh;
// Feature that shows placeholder cards instead of a loading spinner at first
// load.
extern const base::Feature kFeedLoadingPlaceholder;
// Param allowing animations to be disabled when showing the placeholder on
// instant start.
extern const base::FeatureParam<bool>
kEnableFeedLoadingPlaceholderAnimationOnInstantStart;
// Feature that allows tuning the size of the image memory cache. Value is a
// percentage of the maximum size calculated for the device.
extern const base::Feature kFeedImageMemoryCacheSizePercentage;
// Feature that enables clearing the image memory cache when the feed is
// destroyed.
extern const base::Feature kFeedClearImageMemoryCache;
// Feature that enables showing a callout to help users return to the top of the
// feeds quickly.
extern const base::Feature kFeedBackToTop;
// Feature that enables StAMP cards in the feed.
extern const base::Feature kFeedStamp;
// Feature that provides the user assistance in discovering the web feed.
extern const base::Feature kWebFeedAwareness;
// Feature that provides the user assistance in using the web feed.
extern const base::Feature kWebFeedOnboarding;
// Feature that enables sorting by different heuristics in the web feed.
extern const base::Feature kWebFeedSort;
// Feature that causes the "open in new tab" menu item to appear on feed items
// on Start Surface.
extern const base::Feature kEnableOpenInNewTabFromStartSurfaceFeed;
// Feature that causes the WebUI version of the Feed to be enabled.
extern const base::Feature kWebUiFeed;
extern const base::FeatureParam<std::string> kWebUiScriptFetchUrl;
extern const base::FeatureParam<bool> kWebUiDisableContentSecurityPolicy;
std::string GetFeedReferrerUrl();
// Personalize feed for unsigned users.
extern const base::Feature kPersonalizeFeedUnsignedUsers;
// Feature that enables tracking the acknowledgement state for the info cards.
extern const base::Feature kInfoCardAcknowledgementTracking;
// Feature that when enabled completely removes all Feeds from chrome.
extern const base::Feature kIsAblated;
} // namespace feed
#endif // COMPONENTS_FEED_FEED_FEATURE_LIST_H_