Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: components/offline_pages/client_policy_controller.cc

Issue 2289143005: [Offline pages] Add a builder and feature struct to policy (Closed)
Patch Set: fix compile issues in test Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/offline_pages/client_policy_controller.h" 5 #include "components/offline_pages/client_policy_controller.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "components/offline_pages/client_namespace_constants.h" 10 #include "components/offline_pages/client_namespace_constants.h"
11 11
12 using LifetimeType = offline_pages::LifetimePolicy::LifetimeType; 12 using LifetimeType = offline_pages::LifetimePolicy::LifetimeType;
13 13
14 namespace offline_pages { 14 namespace offline_pages {
15 15
16 ClientPolicyController::ClientPolicyController() { 16 ClientPolicyController::ClientPolicyController() {
17 policies_.clear(); 17 policies_.clear();
18 // Manually defining client policies for bookmark and last_n. 18 // Manually defining client policies for bookmark and last_n.
19 policies_.insert(std::make_pair( 19 policies_.insert(std::make_pair(
20 kBookmarkNamespace, 20 kBookmarkNamespace,
21 MakePolicy(kBookmarkNamespace, LifetimeType::TEMPORARY, 21 MakePolicy(kBookmarkNamespace, LifetimeType::TEMPORARY,
22 base::TimeDelta::FromDays(7), kUnlimitedPages, 1))); 22 base::TimeDelta::FromDays(7), kUnlimitedPages, 1)));
23 policies_.insert(std::make_pair( 23 policies_.insert(std::make_pair(
24 kLastNNamespace, MakePolicy(kLastNNamespace, LifetimeType::TEMPORARY, 24 kLastNNamespace, MakePolicy(kLastNNamespace, LifetimeType::TEMPORARY,
25 base::TimeDelta::FromDays(2), kUnlimitedPages, 25 base::TimeDelta::FromDays(2), kUnlimitedPages,
26 kUnlimitedPages))); 26 kUnlimitedPages)));
27 policies_.insert(std::make_pair( 27 policies_.insert(std::make_pair(
28 kAsyncNamespace, MakePolicy(kAsyncNamespace, LifetimeType::PERSISTENT, 28 kAsyncNamespace,
29 base::TimeDelta::FromDays(2), kUnlimitedPages, 29 OfflinePageClientPolicyBuilder(kAsyncNamespace, LifetimeType::PERSISTENT,
30 kUnlimitedPages))); 30 kUnlimitedPages, kUnlimitedPages)
31 .SetIsSupportedByDownload(true)
32 .SetIsRemovedOnCacheReset(false)
33 .Build()));
31 policies_.insert(std::make_pair( 34 policies_.insert(std::make_pair(
32 kCCTNamespace, 35 kCCTNamespace,
33 MakePolicy(kCCTNamespace, LifetimeType::TEMPORARY, 36 MakePolicy(kCCTNamespace, LifetimeType::TEMPORARY,
34 base::TimeDelta::FromDays(2), kUnlimitedPages, 1))); 37 base::TimeDelta::FromDays(2), kUnlimitedPages, 1)));
35
36 policies_.insert(std::make_pair( 38 policies_.insert(std::make_pair(
37 kDownloadNamespace, MakePolicy(kDownloadNamespace, 39 kDownloadNamespace, OfflinePageClientPolicyBuilder(
38 LifetimeType::PERSISTENT, 40 kDownloadNamespace, LifetimeType::PERSISTENT,
39 base::TimeDelta::FromDays(0), 41 kUnlimitedPages, kUnlimitedPages)
40 kUnlimitedPages, 42 .SetIsRemovedOnCacheReset(false)
41 kUnlimitedPages))); 43 .SetIsSupportedByDownload(true)
44 .Build()));
42 policies_.insert(std::make_pair( 45 policies_.insert(std::make_pair(
43 kNTPSuggestionsNamespace, MakePolicy(kNTPSuggestionsNamespace, 46 kNTPSuggestionsNamespace,
44 LifetimeType::PERSISTENT, 47 OfflinePageClientPolicyBuilder(kNTPSuggestionsNamespace,
45 base::TimeDelta::FromDays(0), 48 LifetimeType::PERSISTENT, kUnlimitedPages,
46 kUnlimitedPages, 49 kUnlimitedPages)
47 kUnlimitedPages))); 50 .Build()));
48 51
49 // Fallback policy. 52 // Fallback policy.
50 policies_.insert(std::make_pair( 53 policies_.insert(std::make_pair(
51 kDefaultNamespace, MakePolicy(kDefaultNamespace, LifetimeType::TEMPORARY, 54 kDefaultNamespace, MakePolicy(kDefaultNamespace, LifetimeType::TEMPORARY,
52 base::TimeDelta::FromDays(1), 10, 1))); 55 base::TimeDelta::FromDays(1), 10, 1)));
53 } 56 }
54 57
55 ClientPolicyController::~ClientPolicyController() {} 58 ClientPolicyController::~ClientPolicyController() {}
56 59
57 // static 60 // static
58 const OfflinePageClientPolicy ClientPolicyController::MakePolicy( 61 const OfflinePageClientPolicy ClientPolicyController::MakePolicy(
59 const std::string& name_space, 62 const std::string& name_space,
60 LifetimeType lifetime_type, 63 LifetimeType lifetime_type,
61 const base::TimeDelta& expire_period, 64 const base::TimeDelta& expire_period,
62 size_t page_limit, 65 size_t page_limit,
63 size_t pages_allowed_per_url) { 66 size_t pages_allowed_per_url) {
64 OfflinePageClientPolicy policy({name_space, 67 return OfflinePageClientPolicyBuilder(name_space, lifetime_type, page_limit,
65 {lifetime_type, expire_period, page_limit}, 68 pages_allowed_per_url)
66 pages_allowed_per_url}); 69 .SetExpirePeriod(expire_period)
67 return policy; 70 .Build();
68 } 71 }
69 72
70 const OfflinePageClientPolicy& ClientPolicyController::GetPolicy( 73 const OfflinePageClientPolicy& ClientPolicyController::GetPolicy(
71 const std::string& name_space) const { 74 const std::string& name_space) const {
72 const auto& iter = policies_.find(name_space); 75 const auto& iter = policies_.find(name_space);
73 if (iter != policies_.end()) 76 if (iter != policies_.end())
74 return iter->second; 77 return iter->second;
75 // Fallback when the namespace isn't defined. 78 // Fallback when the namespace isn't defined.
76 return policies_.at(kDefaultNamespace); 79 return policies_.at(kDefaultNamespace);
77 } 80 }
78 81
82 bool ClientPolicyController::IsRemovedOnCacheReset(
83 const std::string& name_space) const {
84 return GetPolicy(name_space).feature_policy.is_removed_on_cache_reset;
85 }
86
87 bool ClientPolicyController::IsSupportedByDownload(
88 const std::string& name_space) const {
89 return GetPolicy(name_space).feature_policy.is_supported_by_download;
90 }
91
79 } // namespace offline_pages 92 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/client_policy_controller.h ('k') | components/offline_pages/client_policy_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698