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

Unified Diff: components/offline_pages/offline_page_client_policy.h

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_client_policy.h
diff --git a/components/offline_pages/offline_page_client_policy.h b/components/offline_pages/offline_page_client_policy.h
deleted file mode 100644
index b52d51dcaed08ab057d4bbd5b467356cb37b6121..0000000000000000000000000000000000000000
--- a/components/offline_pages/offline_page_client_policy.h
+++ /dev/null
@@ -1,155 +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.
-
-#ifndef COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_CLIENT_POLICY_H_
-#define COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_CLIENT_POLICY_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "base/time/time.h"
-
-namespace offline_pages {
-
-static const size_t kUnlimitedPages = 0;
-
-// The struct describing the lifetime policy of offline pages.
-// The following behaviors are controlled by policy:
-// a. Persistency of the offline page.
-// b. Expiration time of an offline page
-// c. Limit of number of pages offline.
-struct LifetimePolicy {
- // Type of the client, indicating where the archived page would be saved
- // and whether it could be kept indefinitely.
- enum class LifetimeType {
- TEMPORARY,
- PERSISTENT,
- };
-
- // Type of the page generated by the client.
- LifetimeType lifetime_type;
-
- // The time after which the page expires.
- // A TimeDelta of 0 means no expiration.
- base::TimeDelta expiration_period;
-
- // The maximum number of pages allowed to be saved by the namespace.
- // kUnlimitedPages (defined above) means no limit set.
- size_t page_limit;
-
- LifetimePolicy(LifetimeType init_lifetime_type, size_t init_page_limit)
- : lifetime_type(init_lifetime_type),
- expiration_period(base::TimeDelta::FromDays(0)),
- page_limit(init_page_limit){};
-};
-
-// The struct describing feature set of the offline pages.
-struct FeaturePolicy {
- // Whether pages are shown in download ui.
- bool is_supported_by_download;
- // Whether pages are shown in recent tabs ui.
- bool is_supported_by_recent_tabs;
- // Whether pages should only be viewed in the tab they were generated in.
- bool only_shown_in_original_tab;
- // Whether pages are removed on user-initiated cache reset. Defaults to true.
- bool is_removed_on_cache_reset;
-
- FeaturePolicy()
- : is_supported_by_download(false),
- is_supported_by_recent_tabs(false),
- only_shown_in_original_tab(false),
- is_removed_on_cache_reset(true){};
-};
-
-// The struct describing policies for various namespaces (Bookmark, Last-N etc.)
-// used by offline page model. The name_space is supposed to be key, so that
-// it's sufficient to compare name_space only when doing comparisons.
-struct OfflinePageClientPolicy {
- // Namespace to which the policy applied.
- std::string name_space;
-
- // Policy to control the lifetime of a page generated by this namespace.
- LifetimePolicy lifetime_policy;
-
- // How many pages for the same online URL can be stored at any time.
- // kUnlimitedPages means there's no limit.
- size_t pages_allowed_per_url;
-
- FeaturePolicy feature_policy;
-
- OfflinePageClientPolicy(std::string namespace_val,
- LifetimePolicy lifetime_policy_val,
- size_t pages_allowed_per_url_val,
- FeaturePolicy feature_policy_val)
- : name_space(namespace_val),
- lifetime_policy(lifetime_policy_val),
- pages_allowed_per_url(pages_allowed_per_url_val),
- feature_policy(feature_policy_val){};
-
- OfflinePageClientPolicy(std::string namespace_val,
- LifetimePolicy lifetime_policy_val,
- size_t pages_allowed_per_url_val)
- : OfflinePageClientPolicy(namespace_val,
- lifetime_policy_val,
- pages_allowed_per_url_val,
- FeaturePolicy()){};
-};
-
-class OfflinePageClientPolicyBuilder {
- public:
- OfflinePageClientPolicyBuilder(const std::string& name_space,
- LifetimePolicy::LifetimeType lifetime_type,
- size_t page_limit,
- size_t pages_allowed_per_url)
- : policy_(
- OfflinePageClientPolicy(name_space,
- LifetimePolicy(lifetime_type, page_limit),
- pages_allowed_per_url)){};
-
- ~OfflinePageClientPolicyBuilder() {}
-
- // Calling build does not reset the object inside.
- const OfflinePageClientPolicy Build() const { return policy_; }
-
- OfflinePageClientPolicyBuilder& SetExpirePeriod(
- const base::TimeDelta& expire_period) {
- policy_.lifetime_policy.expiration_period = expire_period;
- return *this;
- }
-
- OfflinePageClientPolicyBuilder& SetIsSupportedByDownload(
- const bool is_downloaded) {
- policy_.feature_policy.is_supported_by_download = is_downloaded;
- return *this;
- }
-
- OfflinePageClientPolicyBuilder& SetIsSupportedByRecentTabs(
- const bool is_recent_tabs) {
- policy_.feature_policy.is_supported_by_recent_tabs = is_recent_tabs;
- return *this;
- }
-
- OfflinePageClientPolicyBuilder& SetIsRemovedOnCacheReset(
- const bool removed_on_cache_reset) {
- policy_.feature_policy.is_removed_on_cache_reset = removed_on_cache_reset;
- return *this;
- }
-
- OfflinePageClientPolicyBuilder& SetIsOnlyShownInOriginalTab(
- const bool only_shown_in_original_tab) {
- policy_.feature_policy.only_shown_in_original_tab =
- only_shown_in_original_tab;
- return *this;
- }
-
- private:
- OfflinePageClientPolicy policy_;
-
- DISALLOW_COPY_AND_ASSIGN(OfflinePageClientPolicyBuilder);
-};
-
-} // namespace offline_pages
-
-#endif // COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_CLIENT_POLICY_H_

Powered by Google App Engine
This is Rietveld 408576698