123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- // Copyright 2016 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_NTP_SNIPPETS_FEATURES_H_
- #define COMPONENTS_NTP_SNIPPETS_FEATURES_H_
- #include <memory>
- #include <string>
- #include <vector>
- #include "base/feature_list.h"
- #include "components/ntp_snippets/category_rankers/category_ranker.h"
- #include "components/prefs/pref_service.h"
- namespace base {
- class Clock;
- }
- namespace ntp_snippets {
- //
- // Null-terminated list of all features related to content suggestions.
- //
- // If you add a base::Feature below, you must add it to this list. It is used in
- // internal pages to list relevant parameters and settings.
- //
- extern const base::Feature* const kAllFeatures[];
- ////////////////////////////////////////////////////////////////////////////////
- // Independent features. Treat as normal
- extern const base::Feature kArticleSuggestionsFeature;
- // Feature for simple experimental comparison and validation of changes since
- // M58: enabling this brings back the M58 Stable fetching schedule (which is
- // suitable for Holdback groups).
- // TODO(jkrcal): Remove when the comparison is done (probably after M62).
- extern const base::Feature kRemoteSuggestionsEmulateM58FetchingSchedule;
- std::unique_ptr<CategoryRanker> BuildSelectedCategoryRanker(
- PrefService* pref_service,
- base::Clock* clock);
- // Enables and configures notifications for content suggestions on Android.
- extern const base::Feature kNotificationsFeature;
- // An integer. The priority of the notification, ranging from -2 (PRIORITY_MIN)
- // to 2 (PRIORITY_MAX). Vibrates and makes sound if >= 0.
- extern const char kNotificationsPriorityParam[];
- constexpr int kNotificationsDefaultPriority = -1;
- // "publisher": use article's publisher as notification's text (default).
- // "snippet": use article's snippet as notification's text.
- // "and_more": use "From $1. Read this article and $2 more." as text.
- extern const char kNotificationsTextParam[];
- extern const char kNotificationsTextValuePublisher[];
- extern const char kNotificationsTextValueSnippet[];
- extern const char kNotificationsTextValueAndMore[];
- // "true": when Chrome becomes frontmost, leave notifications open.
- // "false": automatically dismiss notification when Chrome becomes frontmost.
- extern const char kNotificationsKeepWhenFrontmostParam[];
- // "true": notifications link to chrome://newtab, with appropriate text.
- // "false": notifications link to URL of notifying article.
- extern const char kNotificationsOpenToNTPParam[];
- // An integer. The maximum number of notifications that will be shown in 1 day.
- extern const char kNotificationsDailyLimit[];
- constexpr int kNotificationsDefaultDailyLimit = 1;
- // An integer. The number of notifications that can be ignored. If the user
- // ignores this many notifications or more, we stop sending them.
- extern const char kNotificationsIgnoredLimitParam[];
- constexpr int kNotificationsIgnoredDefaultLimit = 3;
- // Whether to keep some prefetched content suggestions even when new suggestions
- // have been fetched.
- extern const base::Feature kKeepPrefetchedContentSuggestions;
- // Whether this version of the client supports responses without an image.
- extern const base::Feature kOptionalImagesEnabledFeature;
- // Return all the features as a vector.
- std::vector<const base::Feature*> GetAllFeatures();
- // Return a referrer URL for content suggestions.
- // This is deprecated, and only used on iOS.
- std::string GetContentSuggestionsReferrerURL();
- } // namespace ntp_snippets
- #endif // COMPONENTS_NTP_SNIPPETS_FEATURES_H_
|