| 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 b81112224289c466c76ef19da37235bbfae4b8fc..358c62430907192a58c0fbe69dd5a8358c5240aa 100644
|
| --- a/chrome/browser/browsing_data/browsing_data_remover.h
|
| +++ b/chrome/browser/browsing_data/browsing_data_remover.h
|
| @@ -54,85 +54,43 @@ class BrowsingDataFilterBuilder;
|
| class BrowsingDataRemover : public KeyedService {
|
| 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,
|
| + enum DataType {
|
| + // Storage datatypes.
|
| + DATA_TYPE_APP_CACHE = 1 << 0,
|
| + DATA_TYPE_FILE_SYSTEMS = 1 << 1,
|
| + DATA_TYPE_INDEXED_DB = 1 << 2,
|
| + DATA_TYPE_LOCAL_STORAGE = 1 << 3,
|
| + DATA_TYPE_WEB_SQL = 1 << 4,
|
| + DATA_TYPE_SERVICE_WORKERS = 1 << 5,
|
| + DATA_TYPE_CACHE_STORAGE = 1 << 6,
|
| +
|
| + // Other datatypes.
|
| + DATA_TYPE_COOKIES = 1 << 7,
|
| + DATA_TYPE_CHANNEL_IDS = 1 << 8,
|
| + DATA_TYPE_CACHE = 1 << 9,
|
| + DATA_TYPE_DOWNLOADS = 1 << 10,
|
| + DATA_TYPE_MEDIA_LICENSES = 1 << 11,
|
| +
|
| // 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,
|
| + DATA_TYPE_NO_CHECKS = 1 << 12,
|
| +
|
| + // Embedders can add more datatypes beyond this point.
|
| + DATA_TYPE_CONTENT_END = DATA_TYPE_NO_CHECKS,
|
| };
|
|
|
| - // 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.");
|
| + enum OriginType {
|
| + // Web storage origins that StoragePartition recognizes as NOT protected
|
| + // according to its special storage policy.
|
| + ORIGIN_TYPE_UNPROTECTED_WEB = 1 << 0,
|
| +
|
| + // Web storage origins that StoragePartition recognizes as protected
|
| + // according to its special storage policy.
|
| + ORIGIN_TYPE_PROTECTED_WEB = 1 << 1,
|
| +
|
| + // Embedders can add more origin types beyond this point.
|
| + ORIGIN_TYPE_CONTENT_END = ORIGIN_TYPE_PROTECTED_WEB,
|
| + };
|
|
|
| // A helper enum to report the deletion of cookies and/or cache. Do not
|
| // reorder the entries, as this enum is passed to UMA.
|
| @@ -161,6 +119,13 @@ class BrowsingDataRemover : public KeyedService {
|
| std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate) = 0;
|
| virtual BrowsingDataRemoverDelegate* GetEmbedderDelegate() const = 0;
|
|
|
| + // Determines whether |origin| matches the |origin_type_mask| according to
|
| + // the |special_storage_policy|.
|
| + virtual bool DoesOriginMatchMask(
|
| + int origin_type_mask,
|
| + const GURL& origin,
|
| + storage::SpecialStoragePolicy* special_storage_policy) const = 0;
|
| +
|
| // 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,
|
|
|