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 |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fc503459db95ef1b001c632e5634d4769f231d7e |
--- /dev/null |
+++ b/components/offline_pages/offline_page_client_policy.h |
@@ -0,0 +1,55 @@ |
+// 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 int 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 before the page expires. |
+ base::TimeDelta expire_period; |
+ |
+ // The maximum number of pages allowd to be saved by the namespace. |
fgorski
2016/05/02 23:10:32
nit: allowed
romax
2016/05/03 00:29:24
Done.
|
+ // kUnlimitedPages (defined above) means no limit set. |
+ int page_limit; |
+}; |
+ |
+// 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; |
+}; |
+ |
+} // namespace offline_pages |
+ |
+#endif // COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_CLIENT_POLICY_H_ |