1 // Copyright 2020 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_FEED_CORE_V2_ENUMS_H_
6 #define COMPONENTS_FEED_CORE_V2_ENUMS_H_
7 
8 #include <iosfwd>
9 
10 #include "components/feed/core/common/enums.h"
11 
12 namespace feed {
13 
14 enum class NetworkRequestType : int {
15   kFeedQuery = 0,
16   kUploadActions = 1,
17 };
18 
19 // This must be kept in sync with FeedLoadStreamStatus in enums.xml.
20 enum class LoadStreamStatus {
21   // Loading was not attempted.
22   kNoStatus = 0,
23   kLoadedFromStore = 1,
24   kLoadedFromNetwork = 2,
25   kFailedWithStoreError = 3,
26   kNoStreamDataInStore = 4,
27   kModelAlreadyLoaded = 5,
28   kNoResponseBody = 6,
29   kProtoTranslationFailed = 7,
30   kDataInStoreIsStale = 8,
31   // The timestamp for stored data is in the future, so we're treating stored
32   // data as it it is stale.
33   kDataInStoreIsStaleTimestampInFuture = 9,
34   kCannotLoadFromNetworkSupressedForHistoryDelete_DEPRECATED = 10,
35   kCannotLoadFromNetworkOffline = 11,
36   kCannotLoadFromNetworkThrottled = 12,
37   kLoadNotAllowedEulaNotAccepted = 13,
38   kLoadNotAllowedArticlesListHidden = 14,
39   kCannotParseNetworkResponseBody = 15,
40   kLoadMoreModelIsNotLoaded = 16,
41   kLoadNotAllowedDisabledByEnterprisePolicy = 17,
42   kNetworkFetchFailed = 18,
43   kCannotLoadMoreNoNextPageToken = 19,
44   kMaxValue = kCannotLoadMoreNoNextPageToken,
45 };
46 
47 std::ostream& operator<<(std::ostream& out, LoadStreamStatus value);
48 
49 // Keep this in sync with FeedUploadActionsStatus in enums.xml.
50 enum class UploadActionsStatus {
51   kNoStatus = 0,
52   kNoPendingActions = 1,
53   kFailedToStorePendingAction = 2,
54   kStoredPendingAction = 3,
55   kUpdatedConsistencyToken = 4,
56   kFinishedWithoutUpdatingConsistencyToken = 5,
57   kAbortUploadForSignedOutUser = 6,
58   kAbortUploadBecauseDisabled = 7,
59   kMaxValue = kAbortUploadBecauseDisabled,
60 };
61 
62 // Keep this in sync with FeedUploadActionsBatchStatus in enums.xml.
63 enum class UploadActionsBatchStatus {
64   kNoStatus = 0,
65   kFailedToUpdateStore = 1,
66   kFailedToUpload = 2,
67   kFailedToRemoveUploadedActions = 3,
68   kExhaustedUploadQuota = 4,
69   kAllActionsWereStale = 5,
70   kSuccessfullyUploadedBatch = 6,
71   kMaxValue = kSuccessfullyUploadedBatch,
72 };
73 
74 std::ostream& operator<<(std::ostream& out, UploadActionsStatus value);
75 std::ostream& operator<<(std::ostream& out, UploadActionsBatchStatus value);
76 
77 }  // namespace feed
78 
79 #endif  // COMPONENTS_FEED_CORE_V2_ENUMS_H_
80