blob: 45fa6609b9139ff7a1bec01bc186501e109581d8 [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/feed/feed_feature_list.h"
#include "base/containers/contains.h"
#include "base/time/time.h"
#include "components/country_codes/country_codes.h"
#include "base/feature_list.h"
#include "base/metrics/field_trial_params.h"
#include "build/build_config.h"
#if BUILDFLAG(IS_ANDROID)
#include "components/sync/base/features.h"
#endif // BUILDFLAG(IS_ANDROID)
namespace feed {
const char kFeedHeaderRemovalTreatmentParam[] = "treatment";
const char kFeedHeaderRemovalTreatmentValue1[] = "label";
const char kFeedHeaderRemovalTreatmentValue2[] = "none";
// InterestFeedV2 takes precedence over InterestFeedContentSuggestions.
// InterestFeedV2 is cached in ChromeCachedFlags. If the default value here is
// changed, please update the cached one's default value in CachedFeatureFlags.
BASE_FEATURE(kInterestFeedV2,
"InterestFeedV2",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kDiscoFeedEndpoint,
"DiscoFeedEndpoint",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kXsurfaceMetricsReporting,
"XsurfaceMetricsReporting",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFeedLoadingPlaceholder,
"FeedLoadingPlaceholder",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFeedImageMemoryCacheSizePercentage,
"FeedImageMemoryCacheSizePercentage",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFeedStamp, "FeedStamp", base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kWebFeedAwareness,
"WebFeedAwareness",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kWebFeedOnboarding,
"WebFeedOnboarding",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kWebFeedSort, "WebFeedSort", base::FEATURE_DISABLED_BY_DEFAULT);
bool IsCormorantEnabledForLocale(std::string country) {
return IsWebFeedEnabledForLocale(country);
}
BASE_FEATURE(kPersonalizeFeedUnsignedUsers,
"PersonalizeFeedUnsignedUsers",
base::FEATURE_DISABLED_BY_DEFAULT);
// TODO(crbug.com/40764861): Remove this helper, directly use kSignin instead.
signin::ConsentLevel GetConsentLevelNeededForPersonalizedFeed() {
return signin::ConsentLevel::kSignin;
}
BASE_FEATURE(kFeedNoViewCache,
"FeedNoViewCache",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kFeedShowSignInCommand,
"FeedShowSignInCommand",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kFeedPerformanceStudy,
"FeedPerformanceStudy",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSyntheticCapabilities,
"FeedSyntheticCapabilities",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFeedSignedOutViewDemotion,
"FeedSignedOutViewDemotion",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFeedFollowUiUpdate,
"FeedFollowUiUpdate",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kRefreshFeedOnRestart,
"RefreshFeedOnRestart",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFeedContainment,
"FeedContainment",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kWebFeedKillSwitch,
"WebFeedKillSwitch",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFeedRecyclerBinderUnmountOnDetach,
"FeedRecyclerBinderUnmountOnDetach",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFeedStreaming,
"FeedStreaming",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFeedHeaderRemoval,
"FeedHeaderRemoval",
base::FEATURE_DISABLED_BY_DEFAULT);
bool IsWebFeedEnabledForLocale(const std::string& country) {
const std::vector<std::string> launched_countries = {"AU", "CA", "GB",
"NZ", "US", "ZA"};
return base::Contains(launched_countries, country) &&
!base::FeatureList::IsEnabled(kWebFeedKillSwitch);
}
} // namespace feed