blob: cecd105af03c91fc7c884b55518e7b69f92defe7 [file] [log] [blame]
// Copyright 2017 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.
#include "chrome/browser/ntp_snippets/dependent_features.h"
#include "build/build_config.h"
#include "chrome/common/chrome_features.h"
#include "components/ntp_snippets/features.h"
#include "components/offline_pages/core/offline_page_feature.h"
#if defined(OS_ANDROID)
#include "chrome/browser/android/chrome_feature_list.h"
#include "chrome/browser/android/feature_utilities.h"
#endif // OS_ANDROID
namespace ntp_snippets {
namespace {
// All platforms proxy for chrome::android::GetIsChromeHomeEnabled.
bool GetIsChromeHomeEnabled() {
#if defined(OS_ANDROID)
return chrome::android::GetIsChromeHomeEnabled();
#else
return false;
#endif // OS_ANDROID
}
bool IsPhysicalWebEnabled() {
#if defined(OS_ANDROID)
return base::FeatureList::IsEnabled(chrome::android::kPhysicalWebFeature);
#else
return false;
#endif // OS_ANDROID
}
} // namespace
bool AreAssetDownloadsEnabled() {
return !GetIsChromeHomeEnabled() &&
base::FeatureList::IsEnabled(
features::kAssetDownloadSuggestionsFeature);
}
bool AreOfflinePageDownloadsEnabled() {
return !GetIsChromeHomeEnabled() &&
base::FeatureList::IsEnabled(
features::kOfflinePageDownloadSuggestionsFeature);
}
bool IsDownloadsProviderEnabled() {
return AreAssetDownloadsEnabled() || AreOfflinePageDownloadsEnabled();
}
bool IsBookmarkProviderEnabled() {
return !GetIsChromeHomeEnabled() &&
base::FeatureList::IsEnabled(
ntp_snippets::kBookmarkSuggestionsFeature);
}
bool IsRecentTabProviderEnabled() {
return !GetIsChromeHomeEnabled() &&
base::FeatureList::IsEnabled(
ntp_snippets::kRecentOfflineTabSuggestionsFeature) &&
base::FeatureList::IsEnabled(
offline_pages::kOffliningRecentPagesFeature);
}
bool IsPhysicalWebPageProviderEnabled() {
return !GetIsChromeHomeEnabled() &&
base::FeatureList::IsEnabled(
ntp_snippets::kPhysicalWebPageSuggestionsFeature) &&
IsPhysicalWebEnabled();
}
bool IsForeignSessionsProviderEnabled() {
return !GetIsChromeHomeEnabled() &&
base::FeatureList::IsEnabled(
ntp_snippets::kForeignSessionsSuggestionsFeature);
}
} // namespace ntp_snippets