List our features in ntp_snippets::kAllFeatures

Move the notifications feature into the component for consistency, even
though nothing in the component actually uses it.

Having this list lets us answer questions list "what active experiment
IDs correspond to our features?" Active experiments are important for
debugging, but they're only loosely tied to features.

BUG=713038

Review-Url: https://codereview.chromium.org/2831553003
Cr-Commit-Position: refs/heads/master@{#466640}
diff --git a/components/ntp_snippets/features.h b/components/ntp_snippets/features.h
index 8832aed..9946e7c2d 100644
--- a/components/ntp_snippets/features.h
+++ b/components/ntp_snippets/features.h
@@ -18,6 +18,14 @@
 
 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*(kAllFeatures[]);
+
 // Features to turn individual providers/categories on/off.
 // TODO(jkrcal): Rename to kRemoteSuggestionsFeature.
 extern const base::Feature kArticleSuggestionsFeature;
@@ -72,6 +80,39 @@
 // Returns which category order to use according to kCategoryOrder feature.
 CategoryOrderChoice GetSelectedCategoryOrder();
 
+// 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;
+
 }  // namespace ntp_snippets
 
 #endif  // COMPONENTS_NTP_SNIPPETS_FEATURES_H_