1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "components/back_forward_cache/back_forward_cache_disable.h"
6 #include "content/public/browser/back_forward_cache.h"
8 namespace back_forward_cache {
10 std::string ReasonIdToString(DisabledReasonId reason_id) {
12 case DisabledReasonId::kUnknown:
14 case DisabledReasonId::kPopupBlockerTabHelper:
15 return "PopupBlockerTabHelper";
16 case DisabledReasonId::kSafeBrowsingTriggeredPopupBlocker:
17 return "SafeBrowsingTriggeredPopupBlocker";
18 case DisabledReasonId::kSafeBrowsingThreatDetails:
19 return "safe_browsing::ThreatDetails";
20 case DisabledReasonId::kDomDistillerViewerSource:
21 return "DomDistillerViewerSource";
22 case DisabledReasonId::kDomDistiller_SelfDeletingRequestDelegate:
23 return "browser::DomDistiller_SelfDeletingRequestDelegate";
24 case DisabledReasonId::kOfflinePage:
26 case DisabledReasonId::kChromePasswordManagerClient_BindCredentialManager:
27 return "ChromePasswordManagerClient::BindCredentialManager";
28 case DisabledReasonId::kPermissionRequestManager:
29 return "PermissionRequestManager";
30 case DisabledReasonId::kModalDialog:
32 case DisabledReasonId::kExtensions:
34 case DisabledReasonId::kExtensionMessaging:
35 return "ExtensionMessaging";
36 case DisabledReasonId::kExtensionMessagingForOpenPort:
37 return "ExtensionMessagingForOpenPort";
38 case DisabledReasonId::kExtensionSentMessageToCachedFrame:
39 return "ExtensionSentMessageToCachedFrame";
40 case DisabledReasonId::kOomInterventionTabHelper:
41 return "OomInterventionTabHelper";
45 // Report string used for NotRestoredReasons API. This will be brief and will
46 // mask extension related reasons as "Extensions".
47 std::string ReasonIdToReportString(DisabledReasonId reason_id) {
49 case DisabledReasonId::kExtensions:
50 case DisabledReasonId::kExtensionMessaging:
51 case DisabledReasonId::kExtensionMessagingForOpenPort:
52 case DisabledReasonId::kExtensionSentMessageToCachedFrame:
55 return ReasonIdToString(reason_id);
59 content::BackForwardCache::DisabledReason DisabledReason(
60 DisabledReasonId reason_id,
61 const std::string& context) {
62 return content::BackForwardCache::DisabledReason(
63 content::BackForwardCache::DisabledSource::kEmbedder,
64 static_cast<content::BackForwardCache::DisabledReasonType>(reason_id),
65 ReasonIdToString(reason_id), context, ReasonIdToReportString(reason_id));
67 } // namespace back_forward_cache