OLD | NEW |
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/offline_page_model_query.h" | 5 #include "components/offline_pages/offline_page_model_query.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <unordered_set> | 8 #include <unordered_set> |
9 | 9 |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 return *this; | 54 return *this; |
55 } | 55 } |
56 | 56 |
57 OfflinePageModelQueryBuilder& | 57 OfflinePageModelQueryBuilder& |
58 OfflinePageModelQueryBuilder::RequireRestrictedToOriginalTab( | 58 OfflinePageModelQueryBuilder::RequireRestrictedToOriginalTab( |
59 Requirement original_tab) { | 59 Requirement original_tab) { |
60 restricted_to_original_tab_ = original_tab; | 60 restricted_to_original_tab_ = original_tab; |
61 return *this; | 61 return *this; |
62 } | 62 } |
63 | 63 |
64 OfflinePageModelQueryBuilder& OfflinePageModelQueryBuilder::AllowExpiredPages( | |
65 bool allow_expired) { | |
66 allow_expired_ = allow_expired; | |
67 return *this; | |
68 } | |
69 | |
70 std::unique_ptr<OfflinePageModelQuery> OfflinePageModelQueryBuilder::Build( | 64 std::unique_ptr<OfflinePageModelQuery> OfflinePageModelQueryBuilder::Build( |
71 ClientPolicyController* controller) { | 65 ClientPolicyController* controller) { |
72 DCHECK(controller); | 66 DCHECK(controller); |
73 | 67 |
74 auto query = base::MakeUnique<OfflinePageModelQuery>(); | 68 auto query = base::MakeUnique<OfflinePageModelQuery>(); |
75 | 69 |
76 query->allow_expired_ = allow_expired_; | |
77 query->urls_ = std::make_pair( | 70 query->urls_ = std::make_pair( |
78 urls_.first, std::set<GURL>(urls_.second.begin(), urls_.second.end())); | 71 urls_.first, std::set<GURL>(urls_.second.begin(), urls_.second.end())); |
79 urls_ = std::make_pair(Requirement::UNSET, std::vector<GURL>()); | 72 urls_ = std::make_pair(Requirement::UNSET, std::vector<GURL>()); |
80 query->offline_ids_ = std::make_pair( | 73 query->offline_ids_ = std::make_pair( |
81 offline_ids_.first, std::set<int64_t>(offline_ids_.second.begin(), | 74 offline_ids_.first, std::set<int64_t>(offline_ids_.second.begin(), |
82 offline_ids_.second.end())); | 75 offline_ids_.second.end())); |
83 offline_ids_ = std::make_pair(Requirement::UNSET, std::vector<int64_t>()); | 76 offline_ids_ = std::make_pair(Requirement::UNSET, std::vector<int64_t>()); |
84 query->client_ids_ = std::make_pair( | 77 query->client_ids_ = std::make_pair( |
85 client_ids_.first, | 78 client_ids_.first, |
86 std::set<ClientId>(client_ids_.second.begin(), client_ids_.second.end())); | 79 std::set<ClientId>(client_ids_.second.begin(), client_ids_.second.end())); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 } | 151 } |
159 | 152 |
160 std::pair<Requirement, std::set<GURL>> | 153 std::pair<Requirement, std::set<GURL>> |
161 OfflinePageModelQuery::GetRestrictedToUrls() const { | 154 OfflinePageModelQuery::GetRestrictedToUrls() const { |
162 if (urls_.first == Requirement::UNSET) | 155 if (urls_.first == Requirement::UNSET) |
163 return std::make_pair(Requirement::UNSET, std::set<GURL>()); | 156 return std::make_pair(Requirement::UNSET, std::set<GURL>()); |
164 | 157 |
165 return urls_; | 158 return urls_; |
166 } | 159 } |
167 | 160 |
168 bool OfflinePageModelQuery::GetAllowExpired() const { | |
169 return allow_expired_; | |
170 } | |
171 | |
172 bool OfflinePageModelQuery::Matches(const OfflinePageItem& item) const { | 161 bool OfflinePageModelQuery::Matches(const OfflinePageItem& item) const { |
173 if (!allow_expired_ && item.IsExpired()) | |
174 return false; | |
175 | |
176 switch (offline_ids_.first) { | 162 switch (offline_ids_.first) { |
177 case Requirement::UNSET: | 163 case Requirement::UNSET: |
178 break; | 164 break; |
179 case Requirement::INCLUDE_MATCHING: | 165 case Requirement::INCLUDE_MATCHING: |
180 if (offline_ids_.second.count(item.offline_id) == 0) | 166 if (offline_ids_.second.count(item.offline_id) == 0) |
181 return false; | 167 return false; |
182 break; | 168 break; |
183 case Requirement::EXCLUDE_MATCHING: | 169 case Requirement::EXCLUDE_MATCHING: |
184 if (offline_ids_.second.count(item.offline_id) > 0) | 170 if (offline_ids_.second.count(item.offline_id) > 0) |
185 return false; | 171 return false; |
(...skipping 29 matching lines...) Expand all Loading... |
215 case Requirement::EXCLUDE_MATCHING: | 201 case Requirement::EXCLUDE_MATCHING: |
216 if (client_ids_.second.count(client_id) > 0) | 202 if (client_ids_.second.count(client_id) > 0) |
217 return false; | 203 return false; |
218 break; | 204 break; |
219 } | 205 } |
220 | 206 |
221 return true; | 207 return true; |
222 } | 208 } |
223 | 209 |
224 } // namespace offline_pages | 210 } // namespace offline_pages |
OLD | NEW |