1 // Copyright 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 #ifndef SYNC_PROTOCOL_SYNC_PROTOCOL_ERROR_H_ 5 #define SYNC_PROTOCOL_SYNC_PROTOCOL_ERROR_H_ 6 7 #include <string> 8 9 #include "base/values.h" 10 #include "sync/base/sync_export.h" 11 #include "sync/internal_api/public/base/model_type.h" 12 13 namespace syncer{ 14 15 enum SyncProtocolErrorType { 16 // Success case. 17 SYNC_SUCCESS, 18 19 // Birthday does not match that of the server. 20 NOT_MY_BIRTHDAY, 21 22 // Server is busy. Try later. 23 THROTTLED, 24 25 // Clear user data is being currently executed by the server. 26 CLEAR_PENDING, 27 28 // Server cannot service the request now. 29 TRANSIENT_ERROR, 30 31 // Server does not wish the client to retry any more until the action has 32 // been taken. 33 NON_RETRIABLE_ERROR, 34 35 // Indicates the datatypes have been migrated and the client should resync 36 // them to get the latest progress markers. 37 MIGRATION_DONE, 38 39 // Invalid Credential. 40 INVALID_CREDENTIAL, 41 42 // An administrator disabled sync for this domain. 43 DISABLED_BY_ADMIN, 44 45 // Client told to stop syncing this device and roll back local data. 46 USER_ROLLBACK, 47 48 // The default value. 49 UNKNOWN_ERROR 50 }; 51 52 enum ClientAction { 53 // Upgrade the client to latest version. 54 UPGRADE_CLIENT, 55 56 // Clear user data and setup sync again. 57 CLEAR_USER_DATA_AND_RESYNC, 58 59 // Set the bit on the account to enable sync. 60 ENABLE_SYNC_ON_ACCOUNT, 61 62 // Stop sync and restart sync. 63 STOP_AND_RESTART_SYNC, 64 65 // Wipe this client of any sync data. 66 DISABLE_SYNC_ON_CLIENT, 67 68 // Account is disabled by admin. Stop sync, clear prefs and show message on 69 // settings page that account is disabled. 70 STOP_SYNC_FOR_DISABLED_ACCOUNT, 71 72 // Disable sync and roll back local model to pre-sync state. 73 DISABLE_SYNC_AND_ROLLBACK, 74 75 // Generated by SyncRollbackManager to notify ProfileSyncService that 76 // rollback is finished. 77 ROLLBACK_DONE, 78 79 // The default. No action. 80 UNKNOWN_ACTION 81 }; 82 83 struct SYNC_EXPORT SyncProtocolError { 84 SyncProtocolErrorType error_type; 85 std::string error_description; 86 std::string url; 87 ClientAction action; 88 ModelTypeSet error_data_types; 89 SyncProtocolError(); 90 ~SyncProtocolError(); 91 base::DictionaryValue* ToValue() const; 92 }; 93 94 SYNC_EXPORT const char* GetSyncErrorTypeString(SyncProtocolErrorType type); 95 SYNC_EXPORT const char* GetClientActionString(ClientAction action); 96 } // namespace syncer 97 #endif // SYNC_PROTOCOL_SYNC_PROTOCOL_ERROR_H_ 98 99