Chromium Code Reviews| Index: components/offline_pages/client_policy_controller.cc |
| diff --git a/components/offline_pages/client_policy_controller.cc b/components/offline_pages/client_policy_controller.cc |
| index d66193350808e2f1baa03d228115013afa20eb3b..34f7d4c3db2d51fb689ebf25d65c79c8178b0771 100644 |
| --- a/components/offline_pages/client_policy_controller.cc |
| +++ b/components/offline_pages/client_policy_controller.cc |
| @@ -6,6 +6,7 @@ |
| #include <utility> |
| +#include "base/memory/ptr_util.h" |
| #include "base/time/time.h" |
| #include "components/offline_pages/client_namespace_constants.h" |
| @@ -21,9 +22,13 @@ ClientPolicyController::ClientPolicyController() { |
| MakePolicy(kBookmarkNamespace, LifetimeType::TEMPORARY, |
| base::TimeDelta::FromDays(7), kUnlimitedPages, 1))); |
| policies_.insert(std::make_pair( |
| - kLastNNamespace, MakePolicy(kLastNNamespace, LifetimeType::TEMPORARY, |
| - base::TimeDelta::FromDays(2), kUnlimitedPages, |
| - kUnlimitedPages))); |
| + kLastNNamespace, |
| + OfflinePageClientPolicyBuilder(kLastNNamespace, LifetimeType::TEMPORARY, |
| + kUnlimitedPages, kUnlimitedPages) |
| + .SetExpirePeriod(base::TimeDelta::FromDays(2)) |
| + .SetIsSupportedByRecentTabs(true) |
|
Dmitry Titov
2016/09/24 00:09:29
This set of bits looks conflicting? If we only can
dewittj
2016/09/26 23:00:31
These are not strictly conflicting. Imagine if we
|
| + .SetIsOnlyShownInOriginalTab(true) |
| + .Build())); |
| policies_.insert(std::make_pair( |
| kAsyncNamespace, |
| OfflinePageClientPolicyBuilder(kAsyncNamespace, LifetimeType::PERSISTENT, |
| @@ -89,4 +94,54 @@ bool ClientPolicyController::IsSupportedByDownload( |
| return GetPolicy(name_space).feature_policy.is_supported_by_download; |
| } |
| +const std::vector<std::string>& |
| +ClientPolicyController::GetNamespacesWithDownloadSupport() { |
| + if (download_namespace_cache_) |
| + return *download_namespace_cache_; |
| + |
| + download_namespace_cache_ = base::MakeUnique<std::vector<std::string>>(); |
| + for (const auto& policy_item : policies_) { |
| + if (policy_item.second.feature_policy.is_supported_by_download) |
| + download_namespace_cache_->emplace_back(policy_item.first); |
| + } |
| + return *download_namespace_cache_; |
| +} |
| + |
| +bool ClientPolicyController::IsRecentTab(const std::string& name_space) const { |
| + return GetPolicy(name_space).feature_policy.is_supported_by_recent_tabs; |
| +} |
| + |
| +const std::vector<std::string>& |
| +ClientPolicyController::GetNamespacesForRecentTabs() { |
| + if (recent_tab_namespace_cache_) |
| + return *recent_tab_namespace_cache_; |
| + |
| + recent_tab_namespace_cache_ = base::MakeUnique<std::vector<std::string>>(); |
| + for (const auto& policy_item : policies_) { |
| + if (policy_item.second.feature_policy.is_supported_by_recent_tabs) |
| + recent_tab_namespace_cache_->emplace_back(policy_item.first); |
| + } |
| + |
| + return *recent_tab_namespace_cache_; |
| +} |
| + |
| +bool ClientPolicyController::ShouldOnlyBeShownInOriginalTab( |
| + const std::string& name_space) const { |
| + return GetPolicy(name_space).feature_policy.only_shown_in_original_tab; |
| +} |
| + |
| +const std::vector<std::string>& |
| +ClientPolicyController::GetNamespacesToShowInOriginalTab() { |
| + if (show_in_original_tab_cache_) |
| + return *show_in_original_tab_cache_; |
| + |
| + show_in_original_tab_cache_ = base::MakeUnique<std::vector<std::string>>(); |
| + for (const auto& policy_item : policies_) { |
| + if (policy_item.second.feature_policy.only_shown_in_original_tab) |
| + show_in_original_tab_cache_->emplace_back(policy_item.first); |
| + } |
| + |
| + return *show_in_original_tab_cache_; |
| +} |
| + |
| } // namespace offline_pages |