1 // Copyright 2020 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef STORAGE_BROWSER_QUOTA_QUOTA_CLIENT_TYPE_H_
6 #define STORAGE_BROWSER_QUOTA_QUOTA_CLIENT_TYPE_H_
7 
8 #include "base/component_export.h"
9 #include "base/containers/flat_set.h"
10 
11 namespace storage {
12 
13 // Identifies storage features for browser data deletion.
14 //
15 // Values are not expected to be persisted or logged. Enum members may be added,
16 // removed, and reordered without warning.
17 enum class QuotaClientType {
18   kFileSystem = 1,
19   kDatabase = 2,
20   kIndexedDatabase = 3,
21   kServiceWorkerCache = 4,
22   kServiceWorker = 5,
23   kBackgroundFetch = 6,
24   kAppcache = 7,
25 };
26 
27 // Set of QuotaClientType values.
28 //
29 // TODO(pwnall): Switch to std::bitset, or another type that's cheap to copy.
30 using QuotaClientTypes = base::flat_set<QuotaClientType>;
31 
32 COMPONENT_EXPORT(STORAGE_BROWSER) const QuotaClientTypes& AllQuotaClientTypes();
33 
34 }  // namespace storage
35 
36 #endif  // STORAGE_BROWSER_QUOTA_QUOTA_CLIENT_TYPE_H_
37