Index: components/offline_pages/offline_page_model_query.cc |
diff --git a/components/offline_pages/offline_page_model_query.cc b/components/offline_pages/offline_page_model_query.cc |
deleted file mode 100644 |
index 5fe192dc5639632f200c2cf1658b728b3721019c..0000000000000000000000000000000000000000 |
--- a/components/offline_pages/offline_page_model_query.cc |
+++ /dev/null |
@@ -1,210 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "components/offline_pages/offline_page_model_query.h" |
- |
-#include <algorithm> |
-#include <unordered_set> |
- |
-#include "base/memory/ptr_util.h" |
- |
-namespace offline_pages { |
- |
-using Requirement = OfflinePageModelQuery::Requirement; |
- |
-OfflinePageModelQueryBuilder::OfflinePageModelQueryBuilder() |
- : offline_ids_(std::make_pair(Requirement::UNSET, std::vector<int64_t>())) { |
-} |
- |
-OfflinePageModelQueryBuilder::~OfflinePageModelQueryBuilder() = default; |
- |
-OfflinePageModelQueryBuilder& OfflinePageModelQueryBuilder::SetOfflinePageIds( |
- Requirement requirement, |
- const std::vector<int64_t>& ids) { |
- offline_ids_ = std::make_pair(requirement, ids); |
- return *this; |
-} |
- |
-OfflinePageModelQueryBuilder& OfflinePageModelQueryBuilder::SetClientIds( |
- Requirement requirement, |
- const std::vector<ClientId>& ids) { |
- client_ids_ = std::make_pair(requirement, ids); |
- return *this; |
-} |
- |
-OfflinePageModelQueryBuilder& OfflinePageModelQueryBuilder::SetUrls( |
- Requirement requirement, |
- const std::vector<GURL>& urls) { |
- urls_ = std::make_pair(requirement, urls); |
- return *this; |
-} |
- |
-OfflinePageModelQueryBuilder& |
-OfflinePageModelQueryBuilder::RequireSupportedByDownload( |
- Requirement supported_by_download) { |
- supported_by_download_ = supported_by_download; |
- return *this; |
-} |
- |
-OfflinePageModelQueryBuilder& |
-OfflinePageModelQueryBuilder::RequireShownAsRecentlyVisitedSite( |
- Requirement recently_visited) { |
- shown_as_recently_visited_site_ = recently_visited; |
- return *this; |
-} |
- |
-OfflinePageModelQueryBuilder& |
-OfflinePageModelQueryBuilder::RequireRestrictedToOriginalTab( |
- Requirement original_tab) { |
- restricted_to_original_tab_ = original_tab; |
- return *this; |
-} |
- |
-std::unique_ptr<OfflinePageModelQuery> OfflinePageModelQueryBuilder::Build( |
- ClientPolicyController* controller) { |
- DCHECK(controller); |
- |
- auto query = base::MakeUnique<OfflinePageModelQuery>(); |
- |
- query->urls_ = std::make_pair( |
- urls_.first, std::set<GURL>(urls_.second.begin(), urls_.second.end())); |
- urls_ = std::make_pair(Requirement::UNSET, std::vector<GURL>()); |
- query->offline_ids_ = std::make_pair( |
- offline_ids_.first, std::set<int64_t>(offline_ids_.second.begin(), |
- offline_ids_.second.end())); |
- offline_ids_ = std::make_pair(Requirement::UNSET, std::vector<int64_t>()); |
- query->client_ids_ = std::make_pair( |
- client_ids_.first, |
- std::set<ClientId>(client_ids_.second.begin(), client_ids_.second.end())); |
- client_ids_ = std::make_pair(Requirement::UNSET, std::vector<ClientId>()); |
- |
- std::vector<std::string> allowed_namespaces; |
- bool uses_namespace_restrictions = false; |
- |
- for (auto& name_space : controller->GetAllNamespaces()) { |
- // If any exclusion requirements exist, and the namespace matches one of |
- // those excluded by policy, skip adding it to |allowed_namespaces|. |
- if ((supported_by_download_ == Requirement::EXCLUDE_MATCHING && |
- controller->IsSupportedByDownload(name_space)) || |
- (shown_as_recently_visited_site_ == Requirement::EXCLUDE_MATCHING && |
- controller->IsShownAsRecentlyVisitedSite(name_space)) || |
- (restricted_to_original_tab_ == Requirement::EXCLUDE_MATCHING && |
- controller->IsRestrictedToOriginalTab(name_space))) { |
- // Skip namespaces that meet exclusion requirements. |
- uses_namespace_restrictions = true; |
- continue; |
- } |
- |
- if ((supported_by_download_ == Requirement::INCLUDE_MATCHING && |
- !controller->IsSupportedByDownload(name_space)) || |
- (shown_as_recently_visited_site_ == Requirement::INCLUDE_MATCHING && |
- !controller->IsShownAsRecentlyVisitedSite(name_space)) || |
- (restricted_to_original_tab_ == Requirement::INCLUDE_MATCHING && |
- !controller->IsRestrictedToOriginalTab(name_space))) { |
- // Skip namespaces that don't meet inclusion requirement. |
- uses_namespace_restrictions = true; |
- continue; |
- } |
- |
- // Add namespace otherwise. |
- allowed_namespaces.emplace_back(name_space); |
- } |
- |
- supported_by_download_ = Requirement::UNSET; |
- shown_as_recently_visited_site_ = Requirement::UNSET; |
- restricted_to_original_tab_ = Requirement::UNSET; |
- |
- if (uses_namespace_restrictions) { |
- query->restricted_to_namespaces_ = base::MakeUnique<std::set<std::string>>( |
- allowed_namespaces.begin(), allowed_namespaces.end()); |
- } |
- |
- return query; |
-} |
- |
-OfflinePageModelQuery::OfflinePageModelQuery() = default; |
-OfflinePageModelQuery::~OfflinePageModelQuery() = default; |
- |
-std::pair<bool, std::set<std::string>> |
-OfflinePageModelQuery::GetRestrictedToNamespaces() const { |
- if (!restricted_to_namespaces_) |
- return std::make_pair(false, std::set<std::string>()); |
- |
- return std::make_pair(true, *restricted_to_namespaces_); |
-} |
- |
-std::pair<Requirement, std::set<int64_t>> |
-OfflinePageModelQuery::GetRestrictedToOfflineIds() const { |
- if (offline_ids_.first == Requirement::UNSET) |
- return std::make_pair(Requirement::UNSET, std::set<int64_t>()); |
- |
- return offline_ids_; |
-} |
- |
-std::pair<Requirement, std::set<ClientId>> |
-OfflinePageModelQuery::GetRestrictedToClientIds() const { |
- if (client_ids_.first == Requirement::UNSET) |
- return std::make_pair(Requirement::UNSET, std::set<ClientId>()); |
- |
- return client_ids_; |
-} |
- |
-std::pair<Requirement, std::set<GURL>> |
-OfflinePageModelQuery::GetRestrictedToUrls() const { |
- if (urls_.first == Requirement::UNSET) |
- return std::make_pair(Requirement::UNSET, std::set<GURL>()); |
- |
- return urls_; |
-} |
- |
-bool OfflinePageModelQuery::Matches(const OfflinePageItem& item) const { |
- switch (offline_ids_.first) { |
- case Requirement::UNSET: |
- break; |
- case Requirement::INCLUDE_MATCHING: |
- if (offline_ids_.second.count(item.offline_id) == 0) |
- return false; |
- break; |
- case Requirement::EXCLUDE_MATCHING: |
- if (offline_ids_.second.count(item.offline_id) > 0) |
- return false; |
- break; |
- } |
- |
- switch (urls_.first) { |
- case Requirement::UNSET: |
- break; |
- case Requirement::INCLUDE_MATCHING: |
- if (urls_.second.count(item.url) == 0) |
- return false; |
- break; |
- case Requirement::EXCLUDE_MATCHING: |
- if (urls_.second.count(item.url) > 0) |
- return false; |
- break; |
- } |
- |
- const ClientId& client_id = item.client_id; |
- if (restricted_to_namespaces_ && |
- restricted_to_namespaces_->count(client_id.name_space) == 0) { |
- return false; |
- } |
- |
- switch (client_ids_.first) { |
- case Requirement::UNSET: |
- break; |
- case Requirement::INCLUDE_MATCHING: |
- if (client_ids_.second.count(client_id) == 0) |
- return false; |
- break; |
- case Requirement::EXCLUDE_MATCHING: |
- if (client_ids_.second.count(client_id) > 0) |
- return false; |
- break; |
- } |
- |
- return true; |
-} |
- |
-} // namespace offline_pages |