| // Copyright 2021 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_BACK_FORWARD_CACHE_DISABLED_REASON_ID_H_ | 
 | #define COMPONENTS_BACK_FORWARD_CACHE_DISABLED_REASON_ID_H_ | 
 |  | 
 | #include <cstdint> | 
 |  | 
 | namespace back_forward_cache { | 
 |  | 
 | // Reasons to disable BackForwardCache for this frame for chrome features. | 
 | enum class DisabledReasonId : uint16_t { | 
 |   // These values are persisted to logs. Entries should not be renumbered and | 
 |   // numeric values should never be reused. kMaxValue is not defined because | 
 |   // this enum is not logged directly as an enum (see | 
 |   // BackForwardCache::DisabledSource). | 
 |   kUnknown = 0, | 
 |   kPopupBlockerTabHelper = 1, | 
 |   kSafeBrowsingTriggeredPopupBlocker = 2, | 
 |   kSafeBrowsingThreatDetails = 3, | 
 |   // Unblocked by https://crbug.com/1276864 | 
 |   // kAppBannerManager = 4, | 
 |   kDomDistillerViewerSource = 5, | 
 |   kDomDistiller_SelfDeletingRequestDelegate = 6, | 
 |   kOomInterventionTabHelper = 7, | 
 |   kOfflinePage = 8, | 
 |   kContentCredentialManager_BindCredentialManager = 9, | 
 |   kPermissionRequestManager = 10, | 
 |   // Modal dialog such as form resubmittion or http password dialog is shown for | 
 |   // the page. | 
 |   kModalDialog = 11, | 
 |   // Support for extensions is added in stages (see crbug.com/1110891), each | 
 |   // with its own enum. | 
 |   // - kExtensions: All extensions are blocklisted. | 
 |   // - kExtensionMessaging: Extensions using messaging APIs are blocklisted. | 
 |   // - kExtensionMessagingForOpenPort: Extensions using long-lived connections | 
 |   //   that don't close the connection before attempting to cache the frame are | 
 |   //   blocklisted. | 
 |   // - kExtensionSentMessageToCachedFrame: Extensions using long-lived | 
 |   //   connections that attempt to send a message to a frame while it is cached | 
 |   //   (inactive) are blocklisted. | 
 |   // kExtensions = 12. Removed | 
 |   kExtensionMessaging = 13, | 
 |   // kExtensionMessagingForOpenPort = 14. Removed | 
 |   kExtensionSentMessageToCachedFrame = 15, | 
 |   // Android WebView client requested to disable BFCache. See | 
 |   // NavigationWebMessageSender. | 
 |   kRequestedByWebViewClient = 16, | 
 |   // Android WebView client sends postMessage on a JavaScriptReplyProxy that's | 
 |   // associated with a page in BFCache. | 
 |   kPostMessageByWebViewClient = 17, | 
 |   // New reasons should be accompanied by a comment as to why BackForwardCache | 
 |   // cannot be used in this case and a link to a bug to fix that if it is | 
 |   // fixable. | 
 |   // Any updates here should be reflected in tools/metrics/histograms/enums.xml | 
 | }; | 
 |  | 
 | }  // namespace back_forward_cache | 
 |  | 
 | #endif  // COMPONENTS_BACK_FORWARD_CACHE_DISABLED_REASON_ID_H_ |