1 // Copyright (c) 2012 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 COMPONENTS_SYNC_ENGINE_CONFIGURE_REASON_H_
6 #define COMPONENTS_SYNC_ENGINE_CONFIGURE_REASON_H_
7 
8 namespace syncer {
9 
10 // Note: This should confirm with the enums in sync.proto for
11 // GetUpdatesCallerInfo. They will have 1:1 mapping but this will only map
12 // to a subset of the GetUpdatesCallerInfo enum values.
13 enum ConfigureReason {
14   // We should never be here during actual configure. This is for setting
15   // default values.
16   CONFIGURE_REASON_UNKNOWN,
17 
18   // The client is configuring because the user opted to sync a different set
19   // of datatypes.
20   CONFIGURE_REASON_RECONFIGURATION,
21 
22   // The client is configuring because the client is being asked to migrate.
23   CONFIGURE_REASON_MIGRATION,
24 
25   // Setting up sync performs an initial config to download NIGORI data, and
26   // also a config to download initial data once the user selects types.
27   CONFIGURE_REASON_NEW_CLIENT,
28 
29   // A new datatype is enabled for syncing due to a client upgrade.
30   CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE,
31 
32   // A configuration due to enabling or disabling encrypted types due to
33   // cryptographer errors/resolutions.
34   CONFIGURE_REASON_CRYPTO,
35 
36   // The client is configuring because of a programmatic type enable/disable,
37   // such as when an error is encountered/resolved.
38   CONFIGURE_REASON_PROGRAMMATIC,
39 };
40 
41 }  // namespace syncer
42 
43 #endif  // COMPONENTS_SYNC_ENGINE_CONFIGURE_REASON_H_
44