blob: 8991367c84965770d38cf008dbb68c93a199ce6c [file] [log] [blame]
treibec8f3302016-08-04 11:05:201// Copyright 2016 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_NTP_SNIPPETS_FEATURES_H_
6#define COMPONENTS_NTP_SNIPPETS_FEATURES_H_
7
vitaliiia64fb41f2017-01-04 07:40:298#include <memory>
skym9e961db2016-09-19 19:02:089#include <string>
10
treibec8f3302016-08-04 11:05:2011#include "base/feature_list.h"
vitaliiia64fb41f2017-01-04 07:40:2912#include "components/ntp_snippets/category_rankers/category_ranker.h"
13#include "components/prefs/pref_service.h"
treibec8f3302016-08-04 11:05:2014
15namespace ntp_snippets {
16
pkec4fe8dd2016-08-12 14:34:4117// Features to turn individual providers/categories on/off.
treib5bc62a82016-08-09 11:30:1518extern const base::Feature kArticleSuggestionsFeature;
pke2f529e9c2016-08-05 11:52:0719extern const base::Feature kBookmarkSuggestionsFeature;
pkec4fe8dd2016-08-12 14:34:4120extern const base::Feature kRecentOfflineTabSuggestionsFeature;
vitaliii762478d2016-08-17 09:50:5721extern const base::Feature kPhysicalWebPageSuggestionsFeature;
dgnbb750202016-10-20 12:39:4522extern const base::Feature kForeignSessionsSuggestionsFeature;;
treib5bc62a82016-08-09 11:30:1523
peconn279b4d52016-08-12 18:42:0124// Feature to allow the 'save to offline' option to appear in the snippets
25// context menu.
26extern const base::Feature kSaveToOfflineFeature;
27
peconncde6298d2016-10-26 21:46:2128// Feature to allow offline badges to appear on snippets.
29extern const base::Feature kOfflineBadgeFeature;
30
dgnbb750202016-10-20 12:39:4531// Feature to allow dismissing sections.
32extern const base::Feature kSectionDismissalFeature;
33
treib5bc62a82016-08-09 11:30:1534// Global toggle for the whole content suggestions feature. If this is set to
35// false, all the per-provider features are ignored.
treibec8f3302016-08-04 11:05:2036extern const base::Feature kContentSuggestionsFeature;
37
peconn9883eff2016-11-04 18:54:1838// Feature to allow UI as specified here: https://crbug.com/660837.
39extern const base::Feature kIncreasedVisibility;
40
dgn5684fd592016-11-04 15:26:5641// Feature to enable the Fetch More action
42extern const base::Feature kFetchMoreFeature;
43
mvanouwerkerkee932002016-12-20 17:41:4944// Feature to prefer AMP URLs over regular URLs when available.
45extern const base::Feature kPreferAmpUrlsFeature;
46
vitaliiia64fb41f2017-01-04 07:40:2947// Feature to choose a category ranker.
48extern const base::Feature kCategoryRanker;
49
50// Parameter for a kCategoryRanker feature flag.
51extern const char kCategoryRankerParameter[];
52// Possible values of the parameter above.
53extern const char kCategoryRankerConstantRanker[];
54extern const char kCategoryRankerClickBasedRanker[];
55
56enum class CategoryRankerChoice {
57 CONSTANT,
58 CLICK_BASED,
59};
60
61// Returns which CategoryRanker to use according to kCategoryRanker feature.
62CategoryRankerChoice GetSelectedCategoryRanker();
63
64// Builds a CategoryRanker according to kCategoryRanker feature.
65std::unique_ptr<CategoryRanker> BuildSelectedCategoryRanker(
66 PrefService* pref_service);
67
treibec8f3302016-08-04 11:05:2068} // namespace ntp_snippets
69
70#endif // COMPONENTS_NTP_SNIPPETS_FEATURES_H_