| Index: sync/internal_api/public/base/model_type.h
|
| diff --git a/sync/internal_api/public/base/model_type.h b/sync/internal_api/public/base/model_type.h
|
| deleted file mode 100644
|
| index 97edb97a1c1004a7f3d864c9a0cd54999c1446e3..0000000000000000000000000000000000000000
|
| --- a/sync/internal_api/public/base/model_type.h
|
| +++ /dev/null
|
| @@ -1,366 +0,0 @@
|
| -// Copyright 2012 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.
|
| -
|
| -// Enumerate the various item subtypes that are supported by sync.
|
| -// Each sync object is expected to have an immutable object type.
|
| -// An object's type is inferred from the type of data it holds.
|
| -
|
| -#ifndef SYNC_INTERNAL_API_PUBLIC_BASE_MODEL_TYPE_H_
|
| -#define SYNC_INTERNAL_API_PUBLIC_BASE_MODEL_TYPE_H_
|
| -
|
| -#include <map>
|
| -#include <memory>
|
| -#include <ostream>
|
| -#include <set>
|
| -#include <string>
|
| -
|
| -#include "base/logging.h"
|
| -#include "sync/base/sync_export.h"
|
| -#include "sync/internal_api/public/base/enum_set.h"
|
| -
|
| -namespace base {
|
| -class ListValue;
|
| -class StringValue;
|
| -class Value;
|
| -}
|
| -
|
| -namespace sync_pb {
|
| -class EntitySpecifics;
|
| -class SyncEntity;
|
| -}
|
| -
|
| -namespace syncer {
|
| -
|
| -// TODO(akalin): Move the non-exported functions in this file to a
|
| -// private header.
|
| -
|
| -// A Java counterpart will be generated for this enum.
|
| -// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.sync
|
| -
|
| -// |kModelTypeInfoMap| struct entries are in the same order as their definition
|
| -// in ModelType enum. Don't forget to update the |kModelTypeInfoMap| struct in
|
| -// model_type.cc when you make changes in ModelType enum.
|
| -enum ModelType {
|
| - // Object type unknown. Objects may transition through
|
| - // the unknown state during their initial creation, before
|
| - // their properties are set. After deletion, object types
|
| - // are generally preserved.
|
| - UNSPECIFIED,
|
| - // A permanent folder whose children may be of mixed
|
| - // datatypes (e.g. the "Google Chrome" folder).
|
| - TOP_LEVEL_FOLDER,
|
| -
|
| - // ------------------------------------ Start of "real" model types.
|
| - // The model types declared before here are somewhat special, as they
|
| - // they do not correspond to any browser data model. The remaining types
|
| - // are bona fide model types; all have a related browser data model and
|
| - // can be represented in the protocol using a specific Message type in the
|
| - // EntitySpecifics protocol buffer.
|
| - //
|
| - // A bookmark folder or a bookmark URL object.
|
| - BOOKMARKS,
|
| - FIRST_USER_MODEL_TYPE = BOOKMARKS, // Declared 2nd, for debugger prettiness.
|
| - FIRST_REAL_MODEL_TYPE = FIRST_USER_MODEL_TYPE,
|
| -
|
| - // A preference object.
|
| - PREFERENCES,
|
| - // A password object.
|
| - PASSWORDS,
|
| - // An AutofillProfile Object
|
| - AUTOFILL_PROFILE,
|
| - // An autofill object.
|
| - AUTOFILL,
|
| - // Credit cards and addresses synced from the user's account. These are
|
| - // read-only on the client.
|
| - AUTOFILL_WALLET_DATA,
|
| - // Usage counts and last use dates for Wallet cards and addresses. This data
|
| - // is both readable and writable.
|
| - AUTOFILL_WALLET_METADATA,
|
| - // A themes object.
|
| - THEMES,
|
| - // A typed_url object.
|
| - TYPED_URLS,
|
| - // An extension object.
|
| - EXTENSIONS,
|
| - // An object representing a custom search engine.
|
| - SEARCH_ENGINES,
|
| - // An object representing a browser session.
|
| - SESSIONS,
|
| - // An app object.
|
| - APPS,
|
| - // An app setting from the extension settings API.
|
| - APP_SETTINGS,
|
| - // An extension setting from the extension settings API.
|
| - EXTENSION_SETTINGS,
|
| - // App notifications.
|
| - APP_NOTIFICATIONS, // Deprecated.
|
| - // History delete directives.
|
| - HISTORY_DELETE_DIRECTIVES,
|
| - // Synced push notifications.
|
| - SYNCED_NOTIFICATIONS, // Deprecated.
|
| - // Synced Notification app info.
|
| - SYNCED_NOTIFICATION_APP_INFO, // Deprecated.
|
| - // Custom spelling dictionary.
|
| - DICTIONARY,
|
| - // Favicon images.
|
| - FAVICON_IMAGES,
|
| - // Favicon tracking information.
|
| - FAVICON_TRACKING,
|
| - // Client-specific metadata, synced before other user types.
|
| - DEVICE_INFO,
|
| - // These preferences are synced before other user types and are never
|
| - // encrypted.
|
| - PRIORITY_PREFERENCES,
|
| - // Supervised user settings.
|
| - SUPERVISED_USER_SETTINGS,
|
| - // Supervised users. Every supervised user is a profile that is configured
|
| - // remotely by this user and can have restrictions applied. SUPERVISED_USERS
|
| - // and SUPERVISED_USER_SETTINGS can not be encrypted.
|
| - SUPERVISED_USERS,
|
| - // Supervised user shared settings. Shared settings can be modified both by
|
| - // the manager and the supervised user.
|
| - SUPERVISED_USER_SHARED_SETTINGS,
|
| - // Distilled articles.
|
| - ARTICLES,
|
| - // App List items
|
| - APP_LIST,
|
| - // WiFi credentials. Each item contains the information for connecting to one
|
| - // WiFi network. This includes, e.g., network name and password.
|
| - WIFI_CREDENTIALS,
|
| - // Supervised user whitelists. Each item contains a CRX ID (like an extension
|
| - // ID) and a name.
|
| - SUPERVISED_USER_WHITELISTS,
|
| - // Arc Package items.
|
| - ARC_PACKAGE,
|
| -
|
| - // ---- Proxy types ----
|
| - // Proxy types are excluded from the sync protocol, but are still considered
|
| - // real user types. By convention, we prefix them with 'PROXY_' to distinguish
|
| - // them from normal protocol types.
|
| -
|
| - // Tab sync. This is a placeholder type, so that Sessions can be implicitly
|
| - // enabled for history sync and tabs sync.
|
| - PROXY_TABS,
|
| - FIRST_PROXY_TYPE = PROXY_TABS,
|
| - LAST_PROXY_TYPE = PROXY_TABS,
|
| - LAST_USER_MODEL_TYPE = PROXY_TABS,
|
| -
|
| - // ---- Control Types ----
|
| - // An object representing a set of Nigori keys.
|
| - NIGORI,
|
| - FIRST_CONTROL_MODEL_TYPE = NIGORI,
|
| - // Flags to enable experimental features.
|
| - EXPERIMENTS,
|
| - LAST_CONTROL_MODEL_TYPE = EXPERIMENTS,
|
| - LAST_REAL_MODEL_TYPE = LAST_CONTROL_MODEL_TYPE,
|
| -
|
| - // If you are adding a new sync datatype that is exposed to the user via the
|
| - // sync preferences UI, be sure to update the list in
|
| - // components/sync_driver/user_selectable_sync_type.h so that the UMA
|
| - // histograms for sync include your new type. In this case, be sure to also
|
| - // update the UserSelectableTypes() definition in
|
| - // sync/syncable/model_type.cc.
|
| - MODEL_TYPE_COUNT,
|
| -};
|
| -
|
| -typedef EnumSet<ModelType, FIRST_REAL_MODEL_TYPE, LAST_REAL_MODEL_TYPE>
|
| - ModelTypeSet;
|
| -typedef EnumSet<ModelType, UNSPECIFIED, LAST_REAL_MODEL_TYPE>
|
| - FullModelTypeSet;
|
| -typedef std::map<syncer::ModelType, const char*> ModelTypeNameMap;
|
| -
|
| -inline ModelType ModelTypeFromInt(int i) {
|
| - DCHECK_GE(i, 0);
|
| - DCHECK_LT(i, MODEL_TYPE_COUNT);
|
| - return static_cast<ModelType>(i);
|
| -}
|
| -
|
| -// Used by tests outside of sync/.
|
| -SYNC_EXPORT void AddDefaultFieldValue(ModelType datatype,
|
| - sync_pb::EntitySpecifics* specifics);
|
| -
|
| -// Extract the model type of a SyncEntity protocol buffer. ModelType is a
|
| -// local concept: the enum is not in the protocol. The SyncEntity's ModelType
|
| -// is inferred from the presence of particular datatype field in the
|
| -// entity specifics.
|
| -SYNC_EXPORT ModelType GetModelType(const sync_pb::SyncEntity& sync_entity);
|
| -
|
| -// Extract the model type from an EntitySpecifics field. Note that there
|
| -// are some ModelTypes (like TOP_LEVEL_FOLDER) that can't be inferred this way;
|
| -// prefer using GetModelType where possible.
|
| -SYNC_EXPORT ModelType GetModelTypeFromSpecifics(
|
| - const sync_pb::EntitySpecifics& specifics);
|
| -
|
| -// Protocol types are those types that have actual protocol buffer
|
| -// representations. This distinguishes them from Proxy types, which have no
|
| -// protocol representation and are never sent to the server.
|
| -SYNC_EXPORT 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.
|
| -SYNC_EXPORT ModelTypeSet UserTypes();
|
| -
|
| -// These are the user-selectable data types.
|
| -SYNC_EXPORT ModelTypeSet UserSelectableTypes();
|
| -SYNC_EXPORT bool IsUserSelectableType(ModelType model_type);
|
| -SYNC_EXPORT ModelTypeNameMap GetUserSelectableTypeNameMap();
|
| -
|
| -// This is the subset of UserTypes() that can be encrypted.
|
| -SYNC_EXPORT 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.
|
| -SYNC_EXPORT ModelTypeSet PriorityUserTypes();
|
| -
|
| -// 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.
|
| -SYNC_EXPORT ModelTypeSet ProxyTypes();
|
| -
|
| -// Returns a list of all control types.
|
| -//
|
| -// The control types are intended to contain metadata nodes that are essential
|
| -// for the normal operation of the syncer. As such, they have the following
|
| -// special properties:
|
| -// - They are downloaded early during SyncBackend initialization.
|
| -// - They are always enabled. Users may not disable these types.
|
| -// - 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).
|
| -SYNC_EXPORT ModelTypeSet ControlTypes();
|
| -
|
| -// Returns true if this is a control type.
|
| -//
|
| -// See comment above for more information on what makes these types special.
|
| -SYNC_EXPORT bool IsControlType(ModelType 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().
|
| -//
|
| -// The set of all core types.
|
| -SYNC_EXPORT ModelTypeSet CoreTypes();
|
| -// Those core types that have high priority (includes ControlTypes()).
|
| -SYNC_EXPORT ModelTypeSet PriorityCoreTypes();
|
| -
|
| -// Determine a model type from the field number of its associated
|
| -// EntitySpecifics field. Returns UNSPECIFIED if the field number is
|
| -// not recognized.
|
| -//
|
| -// If you're putting the result in a ModelTypeSet, you should use the
|
| -// following pattern:
|
| -//
|
| -// ModelTypeSet model_types;
|
| -// // Say we're looping through a list of items, each of which has a
|
| -// // field number.
|
| -// for (...) {
|
| -// int field_number = ...;
|
| -// ModelType model_type =
|
| -// GetModelTypeFromSpecificsFieldNumber(field_number);
|
| -// if (!IsRealDataType(model_type)) {
|
| -// DLOG(WARNING) << "Unknown field number " << field_number;
|
| -// continue;
|
| -// }
|
| -// model_types.Put(model_type);
|
| -// }
|
| -SYNC_EXPORT ModelType GetModelTypeFromSpecificsFieldNumber(int field_number);
|
| -
|
| -// Return the field number of the EntitySpecifics field associated with
|
| -// a model type.
|
| -SYNC_EXPORT int GetSpecificsFieldNumberFromModelType(
|
| - ModelType model_type);
|
| -
|
| -FullModelTypeSet ToFullModelTypeSet(ModelTypeSet in);
|
| -
|
| -// TODO(sync): The functions below badly need some cleanup.
|
| -
|
| -// Returns a pointer to a string with application lifetime that represents
|
| -// the name of |model_type|.
|
| -SYNC_EXPORT const char* ModelTypeToString(ModelType model_type);
|
| -
|
| -// Some histograms take an integer parameter that represents a model type.
|
| -// The mapping from ModelType to integer is defined here. It should match
|
| -// the mapping from integer to labels defined in histograms.xml.
|
| -SYNC_EXPORT int ModelTypeToHistogramInt(ModelType model_type);
|
| -
|
| -// Handles all model types, and not just real ones.
|
| -//
|
| -// Caller takes ownership of returned value.
|
| -SYNC_EXPORT base::StringValue* ModelTypeToValue(ModelType model_type);
|
| -
|
| -// Converts a Value into a ModelType - complement to ModelTypeToValue().
|
| -SYNC_EXPORT ModelType ModelTypeFromValue(const base::Value& value);
|
| -
|
| -// Returns the ModelType corresponding to the name |model_type_string|.
|
| -SYNC_EXPORT ModelType ModelTypeFromString(
|
| - const std::string& model_type_string);
|
| -
|
| -// Returns the comma-separated string representation of |model_types|.
|
| -SYNC_EXPORT std::string ModelTypeSetToString(ModelTypeSet model_types);
|
| -
|
| -// Necessary for compatibility with EXPECT_EQ and the like.
|
| -SYNC_EXPORT std::ostream& operator<<(std::ostream& out,
|
| - ModelTypeSet model_type_set);
|
| -
|
| -// Returns the set of comma-separated model types from |model_type_string|.
|
| -SYNC_EXPORT ModelTypeSet ModelTypeSetFromString(
|
| - const std::string& model_type_string);
|
| -
|
| -SYNC_EXPORT std::unique_ptr<base::ListValue> ModelTypeSetToValue(
|
| - ModelTypeSet model_types);
|
| -
|
| -SYNC_EXPORT ModelTypeSet ModelTypeSetFromValue(const base::ListValue& value);
|
| -
|
| -// Returns a string corresponding to the syncable tag for this datatype.
|
| -SYNC_EXPORT std::string ModelTypeToRootTag(ModelType type);
|
| -
|
| -// Returns root_tag for |model_type| in ModelTypeInfo.
|
| -// Difference with ModelTypeToRootTag(), this just simply return toor_tag in
|
| -// ModelTypeInfo.
|
| -SYNC_EXPORT const char* GetModelTypeRootTag(ModelType model_type);
|
| -
|
| -// Convert a real model type to a notification type (used for
|
| -// subscribing to server-issued notifications). Returns true iff
|
| -// |model_type| was a real model type and |notification_type| was
|
| -// filled in.
|
| -SYNC_EXPORT bool RealModelTypeToNotificationType(
|
| - ModelType model_type,
|
| - std::string* notification_type);
|
| -
|
| -// Converts a notification type to a real model type. Returns true
|
| -// iff |notification_type| was the notification type of a real model
|
| -// type and |model_type| was filled in.
|
| -SYNC_EXPORT bool NotificationTypeToRealModelType(
|
| - const std::string& notification_type,
|
| - ModelType* model_type);
|
| -
|
| -// Returns true if |model_type| is a real datatype
|
| -SYNC_EXPORT bool IsRealDataType(ModelType model_type);
|
| -
|
| -// Returns true if |model_type| is a proxy type
|
| -SYNC_EXPORT bool IsProxyType(ModelType model_type);
|
| -
|
| -// Returns true if |model_type| is an act-once type. Act once types drop
|
| -// entities after applying them. Drops are deletes that are not synced to other
|
| -// clients.
|
| -// TODO(haitaol): Make entries of act-once data types immutable.
|
| -SYNC_EXPORT bool IsActOnceDataType(ModelType model_type);
|
| -
|
| -// Returns true if |model_type| requires its root folder to be explicitly
|
| -// created on the server during initial sync.
|
| -SYNC_EXPORT bool IsTypeWithServerGeneratedRoot(ModelType model_type);
|
| -
|
| -// Returns true if root folder for |model_type| is created on the client when
|
| -// that type is initially synced.
|
| -SYNC_EXPORT bool IsTypeWithClientGeneratedRoot(ModelType model_type);
|
| -
|
| -// Returns true if |model_type| supports parent-child hierarchy or entries.
|
| -SYNC_EXPORT bool TypeSupportsHierarchy(ModelType model_type);
|
| -
|
| -// Returns true if |model_type| supports ordering of sibling entries.
|
| -SYNC_EXPORT bool TypeSupportsOrdering(ModelType model_type);
|
| -
|
| -} // namespace syncer
|
| -
|
| -#endif // SYNC_INTERNAL_API_PUBLIC_BASE_MODEL_TYPE_H_
|
|
|