Chromium Code Reviews| Index: components/sync/base/model_type.h |
| diff --git a/components/sync/base/model_type.h b/components/sync/base/model_type.h |
| index eb8365323f7beb9a8e4f57afde54870ea2e6b010..b0bf0fa0755b151e8711c74ce08367b7df0eca9c 100644 |
| --- a/components/sync/base/model_type.h |
| +++ b/components/sync/base/model_type.h |
| @@ -12,6 +12,7 @@ |
| #include <string> |
| #include "base/logging.h" |
| +#include "components/reading_list/core/reading_list_enable_flags.h" |
| #include "components/sync/base/enum_set.h" |
| namespace base { |
| @@ -201,11 +202,24 @@ ModelTypeSet ProtocolTypes(); |
| // These are the normal user-controlled types. This is to distinguish from |
| // ControlTypes which are always enabled. Note that some of these share a |
| // preference flag, so not all of them are individually user-selectable. |
| -ModelTypeSet UserTypes(); |
| +constexpr ModelTypeSet UserTypes() { |
| + return ModelTypeSet::FromRange(FIRST_USER_MODEL_TYPE, LAST_USER_MODEL_TYPE); |
| +} |
| // These are the user-selectable data types. |
| -ModelTypeSet UserSelectableTypes(); |
| -bool IsUserSelectableType(ModelType model_type); |
| +constexpr ModelTypeSet UserSelectableTypes() { |
| + return ModelTypeSet(BOOKMARKS, PREFERENCES, PASSWORDS, AUTOFILL, THEMES, |
| + TYPED_URLS, EXTENSIONS, APPS, |
| +#if BUILDFLAG(ENABLE_READING_LIST) |
| + READING_LIST, |
| +#endif |
| + PROXY_TABS); |
| +} |
| + |
| +constexpr bool IsUserSelectableType(ModelType model_type) { |
|
skym
2017/05/05 23:15:42
Can you re-order these functions so all the conste
Patrick Noland
2017/05/08 20:29:19
Done.
|
| + return UserSelectableTypes().Has(model_type); |
| +} |
| + |
| ModelTypeNameMap GetUserSelectableTypeNameMap(); |
| // This is the subset of UserTypes() that can be encrypted. |
| @@ -213,12 +227,16 @@ ModelTypeSet EncryptableUserTypes(); |
| // This is the subset of UserTypes() that have priority over other types. These |
| // types are synced before other user types and are never encrypted. |
| -ModelTypeSet PriorityUserTypes(); |
| +constexpr ModelTypeSet PriorityUserTypes() { |
| + return ModelTypeSet(DEVICE_INFO, PRIORITY_PREFERENCES); |
| +} |
| // Proxy types are placeholder types for handling implicitly enabling real |
| // types. They do not exist at the server, and are simply used for |
| // UI/Configuration logic. |
| -ModelTypeSet ProxyTypes(); |
| +constexpr ModelTypeSet ProxyTypes() { |
| + return ModelTypeSet::FromRange(FIRST_PROXY_TYPE, LAST_PROXY_TYPE); |
| +} |
| // Returns a list of all control types. |
| // |
| @@ -230,12 +248,17 @@ ModelTypeSet ProxyTypes(); |
| // - Their contents are not encrypted automatically. |
| // - They support custom update application and conflict resolution logic. |
| // - All change processing occurs on the sync thread (GROUP_PASSIVE). |
| -ModelTypeSet ControlTypes(); |
| +constexpr ModelTypeSet ControlTypes() { |
| + return ModelTypeSet::FromRange(FIRST_CONTROL_MODEL_TYPE, |
| + LAST_CONTROL_MODEL_TYPE); |
| +} |
| // Returns true if this is a control type. |
| // |
| // See comment above for more information on what makes these types special. |
| -bool IsControlType(ModelType model_type); |
| +constexpr bool IsControlType(ModelType model_type) { |
| + return ControlTypes().Has(model_type); |
| +} |
| // Core types are those data types used by sync's core functionality (i.e. not |
| // user data types). These types are always enabled, and include ControlTypes(). |