Index: components/offline_pages/core/client_policy_controller.cc |
diff --git a/components/offline_pages/core/client_policy_controller.cc b/components/offline_pages/core/client_policy_controller.cc |
index b3381999e0f3b765a6343d245a9b99297757a6ee..3000b74664d91c9c86e289d2d3550b531899ce22 100644 |
--- a/components/offline_pages/core/client_policy_controller.cc |
+++ b/components/offline_pages/core/client_policy_controller.cc |
@@ -38,8 +38,11 @@ ClientPolicyController::ClientPolicyController() { |
.Build())); |
policies_.insert(std::make_pair( |
kCCTNamespace, |
- MakePolicy(kCCTNamespace, LifetimeType::TEMPORARY, |
- base::TimeDelta::FromDays(2), kUnlimitedPages, 1))); |
+ OfflinePageClientPolicyBuilder(kCCTNamespace, LifetimeType::TEMPORARY, |
+ kUnlimitedPages, 1) |
+ .SetExpirePeriod(base::TimeDelta::FromDays(2)) |
+ .SetIsDisabledWhenPrefetchDisabled(true) |
+ .Build())); |
policies_.insert(std::make_pair( |
kDownloadNamespace, OfflinePageClientPolicyBuilder( |
kDownloadNamespace, LifetimeType::PERSISTENT, |
@@ -53,6 +56,7 @@ ClientPolicyController::ClientPolicyController() { |
LifetimeType::PERSISTENT, kUnlimitedPages, |
kUnlimitedPages) |
.SetIsSupportedByDownload(true) |
+ .SetIsRemovedOnCacheReset(false) |
.Build())); |
policies_.insert(std::make_pair( |
kSuggestedArticlesNamespace, |
@@ -60,6 +64,7 @@ ClientPolicyController::ClientPolicyController() { |
LifetimeType::TEMPORARY, kUnlimitedPages, |
kUnlimitedPages) |
.SetIsRemovedOnCacheReset(true) |
+ .SetIsDisabledWhenPrefetchDisabled(true) |
.SetExpirePeriod(base::TimeDelta::FromDays(30)) |
.Build())); |
@@ -162,6 +167,26 @@ ClientPolicyController::GetNamespacesRestrictedToOriginalTab() const { |
return *show_in_original_tab_cache_; |
} |
+bool ClientPolicyController::IsDisabledWhenPrefetchDisabled( |
+ const std::string& name_space) const { |
+ return GetPolicy(name_space).feature_policy.disabled_when_prefetch_disabled; |
+} |
+ |
+const std::vector<std::string>& |
+ClientPolicyController::GetNamespacesDisabledWhenPrefetchDisabled() const { |
+ if (disabled_when_prefetch_disabled_cache_) |
+ return *disabled_when_prefetch_disabled_cache_; |
+ |
+ disabled_when_prefetch_disabled_cache_ = |
+ base::MakeUnique<std::vector<std::string>>(); |
+ for (const auto& policy_item : policies_) { |
+ if (policy_item.second.feature_policy.disabled_when_prefetch_disabled) |
+ disabled_when_prefetch_disabled_cache_->emplace_back(policy_item.first); |
+ } |
+ |
+ return *disabled_when_prefetch_disabled_cache_; |
+} |
+ |
void ClientPolicyController::AddPolicyForTest( |
const std::string& name_space, |
const OfflinePageClientPolicyBuilder& builder) { |