chromium/components/feed/core/v2/public/common_enums.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_FEED_CORE_V2_PUBLIC_COMMON_ENUMS_H_
#define COMPONENTS_FEED_CORE_V2_PUBLIC_COMMON_ENUMS_H_

#include <iosfwd>

// Unlike most code from feed/core, these enums are used by both iOS and
// Android.
namespace feed {

// Values for the UMA ContentSuggestions.Feed.FeedSignInUI histogram.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused. This must be kept in sync with
// FeedSignInUI in enums.xml.
enum class FeedSignInUI : int {};

// Values for the UMA ContentSuggestions.Feed.EngagementType
// histogram. These values are persisted to logs. Entries should not be
// renumbered and numeric values should never be reused. This must be kept
// in sync with FeedEngagementType in enums.xml.
enum class FeedEngagementType {};

// Values for the UMA ContentSuggestions.Feed.UserActions
// histogram. These values are persisted to logs. Entries should not be
// renumbered and numeric values should never be reused. This must be kept
// in sync with FeedUserActionType in enums.xml.
// Note: Most of these have a corresponding UserMetricsAction reported here.
// Exceptions are described below.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.feed.v2
enum class FeedUserActionType {};

// For testing and debugging only.
std::ostream& operator<<(std::ostream& out, FeedUserActionType value);

// Values for the UMA
// ContentSuggestions.Feed.WebFeed.RefreshContentOrder histogram.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused. This must be kept in sync with
// FeedContentOrder in enums.xml.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.feed.v2
enum class ContentOrder : int {};

// Values for the UMA
// ContentSuggestions.Feed.WebFeed.SortType* histograms.
// These values are persisted to logs. Entries should never be reused.
// This must be kept in sync with FeedSortType in enums.xml
// TODO(crbug.com/40241876): should merge with ContentOrder.
enum class FeedSortType : int {};

// Values for the UMA ContentSuggestions.Feed.FeedSyncPromo histogram.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused. This must be kept in sync with
// FeedSyncPromo in enums.xml.
enum class FeedSyncPromo : int {};

}  // namespace feed

#endif  // COMPONENTS_FEED_CORE_V2_PUBLIC_COMMON_ENUMS_H_