Index: chrome/browser/browsing_data/browsing_data_remover.h |
diff --git a/chrome/browser/browsing_data/browsing_data_remover.h b/chrome/browser/browsing_data/browsing_data_remover.h |
index 335844db3a6a8095e331224a777b6b2953969082..52c896130f627125b0e70087d4ce268e62ecf6cb 100644 |
--- a/chrome/browser/browsing_data/browsing_data_remover.h |
+++ b/chrome/browser/browsing_data/browsing_data_remover.h |
@@ -6,13 +6,16 @@ |
#define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_H_ |
#include <memory> |
+#include <set> |
+ |
#include "base/callback_forward.h" |
#include "base/time/time.h" |
-#include "build/build_config.h" |
#include "chrome/browser/browsing_data/browsing_data_remover_delegate.h" |
+#include "content/public/browser/browsing_data_types.h" |
namespace content { |
class BrowsingDataFilterBuilder; |
+struct BrowsingDataType; |
} |
//////////////////////////////////////////////////////////////////////////////// |
@@ -52,87 +55,6 @@ class BrowsingDataFilterBuilder; |
// data deletion. Use PluginDataRemover instead. |
class BrowsingDataRemover { |
public: |
- // Mask used for Remove. |
- enum RemoveDataMask { |
- REMOVE_APPCACHE = 1 << 0, |
- REMOVE_CACHE = 1 << 1, |
- REMOVE_COOKIES = 1 << 2, |
- REMOVE_DOWNLOADS = 1 << 3, |
- REMOVE_FILE_SYSTEMS = 1 << 4, |
- REMOVE_FORM_DATA = 1 << 5, |
- // In addition to visits, REMOVE_HISTORY removes keywords, last session and |
- // passwords UI statistics. |
- REMOVE_HISTORY = 1 << 6, |
- REMOVE_INDEXEDDB = 1 << 7, |
- REMOVE_LOCAL_STORAGE = 1 << 8, |
- REMOVE_PLUGIN_DATA = 1 << 9, |
- REMOVE_PASSWORDS = 1 << 10, |
- REMOVE_WEBSQL = 1 << 11, |
- REMOVE_CHANNEL_IDS = 1 << 12, |
- REMOVE_MEDIA_LICENSES = 1 << 13, |
- REMOVE_SERVICE_WORKERS = 1 << 14, |
- REMOVE_SITE_USAGE_DATA = 1 << 15, |
- // REMOVE_NOCHECKS intentionally does not check if the browser context is |
- // prohibited from deleting history or downloads. |
- REMOVE_NOCHECKS = 1 << 16, |
- REMOVE_CACHE_STORAGE = 1 << 17, |
-#if defined(OS_ANDROID) |
- REMOVE_WEBAPP_DATA = 1 << 18, |
-#endif |
- REMOVE_DURABLE_PERMISSION = 1 << 19, |
- REMOVE_EXTERNAL_PROTOCOL_DATA = 1 << 20, |
- |
- // The following flag is used only in tests. In normal usage, hosted app |
- // data is controlled by the REMOVE_COOKIES flag, applied to the |
- // protected-web origin. |
- REMOVE_HOSTED_APP_DATA_TESTONLY = 1 << 31, |
- |
- // "Site data" includes cookies, appcache, file systems, indexedDBs, local |
- // storage, webSQL, service workers, cache storage, plugin data, web app |
- // data (on Android) and statistics about passwords. |
- REMOVE_SITE_DATA = REMOVE_APPCACHE | REMOVE_COOKIES | REMOVE_FILE_SYSTEMS | |
- REMOVE_INDEXEDDB | |
- REMOVE_LOCAL_STORAGE | |
- REMOVE_PLUGIN_DATA | |
- REMOVE_SERVICE_WORKERS | |
- REMOVE_CACHE_STORAGE | |
- REMOVE_WEBSQL | |
- REMOVE_CHANNEL_IDS | |
-#if defined(OS_ANDROID) |
- REMOVE_WEBAPP_DATA | |
-#endif |
- REMOVE_SITE_USAGE_DATA | |
- REMOVE_DURABLE_PERMISSION | |
- REMOVE_EXTERNAL_PROTOCOL_DATA, |
- |
- // Datatypes protected by Important Sites. |
- IMPORTANT_SITES_DATATYPES = REMOVE_SITE_DATA | REMOVE_CACHE, |
- |
- // Datatypes that can be deleted partially per URL / origin / domain, |
- // whichever makes sense. |
- FILTERABLE_DATATYPES = REMOVE_SITE_DATA | REMOVE_CACHE | REMOVE_DOWNLOADS, |
- |
- // Includes all the available remove options. Meant to be used by clients |
- // that wish to wipe as much data as possible from a Profile, to make it |
- // look like a new Profile. |
- REMOVE_ALL = REMOVE_SITE_DATA | REMOVE_CACHE | REMOVE_DOWNLOADS | |
- REMOVE_FORM_DATA | |
- REMOVE_HISTORY | |
- REMOVE_PASSWORDS | |
- REMOVE_MEDIA_LICENSES, |
- |
- // Includes all available remove options. Meant to be used when the Profile |
- // is scheduled to be deleted, and all possible data should be wiped from |
- // disk as soon as possible. |
- REMOVE_WIPE_PROFILE = REMOVE_ALL | REMOVE_NOCHECKS, |
- }; |
- |
- // Important sites protect a small set of sites from the deletion of certain |
- // datatypes. Therefore, those datatypes must be filterable by |
- // url/origin/domain. |
- static_assert(0 == (IMPORTANT_SITES_DATATYPES & ~FILTERABLE_DATATYPES), |
- "All important sites datatypes must be filterable."); |
- |
// A helper enum to report the deletion of cookies and/or cache. Do not |
// reorder the entries, as this enum is passed to UMA. |
enum CookieOrCacheDeletionChoice { |
@@ -162,18 +84,20 @@ class BrowsingDataRemover { |
// Removes browsing data within the given |time_range|, with datatypes being |
// specified by |remove_mask| and origin types by |origin_type_mask|. |
- virtual void Remove(const base::Time& delete_begin, |
- const base::Time& delete_end, |
- int remove_mask, |
- int origin_type_mask) = 0; |
+ virtual void Remove( |
+ const base::Time& delete_begin, |
+ const base::Time& delete_end, |
+ const std::set<const content::BrowsingDataType*>& remove_mask, |
+ int origin_type_mask) = 0; |
// A version of the above that in addition informs the |observer| when the |
// removal task is finished. |
- virtual void RemoveAndReply(const base::Time& delete_begin, |
- const base::Time& delete_end, |
- int remove_mask, |
- int origin_type_mask, |
- Observer* observer) = 0; |
+ virtual void RemoveAndReply( |
+ const base::Time& delete_begin, |
+ const base::Time& delete_end, |
+ const std::set<const content::BrowsingDataType*>& remove_mask, |
+ int origin_type_mask, |
+ Observer* observer) = 0; |
// Like Remove(), but in case of URL-keyed only removes data whose URL match |
// |filter_builder| (e.g. are on certain origin or domain). |
@@ -181,7 +105,7 @@ class BrowsingDataRemover { |
virtual void RemoveWithFilter( |
const base::Time& delete_begin, |
const base::Time& delete_end, |
- int remove_mask, |
+ const std::set<const content::BrowsingDataType*>& remove_mask, |
int origin_type_mask, |
std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder) = 0; |
@@ -190,7 +114,7 @@ class BrowsingDataRemover { |
virtual void RemoveWithFilterAndReply( |
const base::Time& delete_begin, |
const base::Time& delete_end, |
- int remove_mask, |
+ const std::set<const content::BrowsingDataType*>& remove_mask, |
int origin_type_mask, |
std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder, |
Observer* observer) = 0; |
@@ -207,7 +131,8 @@ class BrowsingDataRemover { |
// the tests to record the parameters using GMock instead. |
virtual const base::Time& GetLastUsedBeginTime() = 0; |
virtual const base::Time& GetLastUsedEndTime() = 0; |
- virtual int GetLastUsedRemovalMask() = 0; |
+ virtual const std::set<const content::BrowsingDataType*>& |
+ GetLastUsedRemovalMask() = 0; |
virtual int GetLastUsedOriginTypeMask() = 0; |
}; |