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

Unified Diff: components/offline_pages/offline_page_model_query.cc

Issue 2489443002: Move all components/offline_pages/ files into component/offline_pages/core (Closed)
Patch Set: more rebase Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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 57691cbe6d7e992d39c2bc9b6f3ffd791c427e00..0000000000000000000000000000000000000000
--- a/components/offline_pages/offline_page_model_query.cc
+++ /dev/null
@@ -1,224 +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;
-}
-
-OfflinePageModelQueryBuilder& OfflinePageModelQueryBuilder::AllowExpiredPages(
- bool allow_expired) {
- allow_expired_ = allow_expired;
- return *this;
-}
-
-std::unique_ptr<OfflinePageModelQuery> OfflinePageModelQueryBuilder::Build(
- ClientPolicyController* controller) {
- DCHECK(controller);
-
- auto query = base::MakeUnique<OfflinePageModelQuery>();
-
- query->allow_expired_ = allow_expired_;
- 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::GetAllowExpired() const {
- return allow_expired_;
-}
-
-bool OfflinePageModelQuery::Matches(const OfflinePageItem& item) const {
- if (!allow_expired_ && item.IsExpired())
- return false;
-
- 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

Powered by Google App Engine
This is Rietveld 408576698