|  | // Copyright 2016 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. | 
|  |  | 
|  | #ifndef COMPONENTS_UPDATE_CLIENT_UPDATE_CLIENT_ERRORS_H_ | 
|  | #define COMPONENTS_UPDATE_CLIENT_UPDATE_CLIENT_ERRORS_H_ | 
|  |  | 
|  | namespace update_client { | 
|  |  | 
|  | // Errors generated as a result of calling UpdateClient member functions. | 
|  | // These errors are not sent in pings. | 
|  | enum class Error { | 
|  | NONE = 0, | 
|  | UPDATE_IN_PROGRESS = 1, | 
|  | UPDATE_CANCELED = 2, | 
|  | RETRY_LATER = 3, | 
|  | SERVICE_ERROR = 4, | 
|  | UPDATE_CHECK_ERROR = 5, | 
|  | CRX_NOT_FOUND = 6, | 
|  | INVALID_ARGUMENT = 7, | 
|  | MAX_VALUE, | 
|  | }; | 
|  |  | 
|  | // These errors are sent in pings. Add new values only to the bottom of | 
|  | // the enums below; the order must be kept stable. | 
|  | enum class ErrorCategory { | 
|  | kNone = 0, | 
|  | kDownload, | 
|  | kUnpack, | 
|  | kInstall, | 
|  | kService,  // Runtime errors which occur in the service itself. | 
|  | kUpdateCheck, | 
|  | }; | 
|  |  | 
|  | // These errors are returned with the |kNetworkError| error category. This | 
|  | // category could include other errors such as the errors defined by | 
|  | // the Chrome net stack. | 
|  | enum class CrxDownloaderError { | 
|  | NONE = 0, | 
|  | NO_URL = 10, | 
|  | NO_HASH = 11, | 
|  | BAD_HASH = 12,  // The downloaded file fails the hash verification. | 
|  | // The Windows BITS queue contains to many update client jobs. The value is | 
|  | // chosen so that it can be reported as a custom COM error on this platform. | 
|  | BITS_TOO_MANY_JOBS = 0x0200, | 
|  | GENERIC_ERROR = -1 | 
|  | }; | 
|  |  | 
|  | // These errors are returned with the |kUnpack| error category and | 
|  | // indicate unpacker or patcher error. | 
|  | enum class UnpackerError { | 
|  | kNone = 0, | 
|  | kInvalidParams = 1, | 
|  | kInvalidFile = 2, | 
|  | kUnzipPathError = 3, | 
|  | kUnzipFailed = 4, | 
|  | // kNoManifest = 5,         // Deprecated. Never used. | 
|  | kBadManifest = 6, | 
|  | kBadExtension = 7, | 
|  | // kInvalidId = 8,          // Deprecated. Combined with kInvalidFile. | 
|  | // kInstallerError = 9,     // Deprecated. Don't use. | 
|  | kIoError = 10, | 
|  | kDeltaVerificationFailure = 11, | 
|  | kDeltaBadCommands = 12, | 
|  | kDeltaUnsupportedCommand = 13, | 
|  | kDeltaOperationFailure = 14, | 
|  | kDeltaPatchProcessFailure = 15, | 
|  | kDeltaMissingExistingFile = 16, | 
|  | // kFingerprintWriteFailed = 17,    // Deprecated. Don't use. | 
|  | }; | 
|  |  | 
|  | // These errors are returned with the |kService| error category and | 
|  | // are returned by the component installers. | 
|  | enum class InstallError { | 
|  | NONE = 0, | 
|  | FINGERPRINT_WRITE_FAILED = 2, | 
|  | BAD_MANIFEST = 3, | 
|  | GENERIC_ERROR = 9,  // Matches kInstallerError for compatibility. | 
|  | MOVE_FILES_ERROR = 10, | 
|  | SET_PERMISSIONS_FAILED = 11, | 
|  | INVALID_VERSION = 12, | 
|  | VERSION_NOT_UPGRADED = 13, | 
|  | NO_DIR_COMPONENT_USER = 14, | 
|  | CLEAN_INSTALL_DIR_FAILED = 15, | 
|  | INSTALL_VERIFICATION_FAILED = 16, | 
|  | CUSTOM_ERROR_BASE = 100,  // Specific installer errors go above this value. | 
|  | }; | 
|  |  | 
|  | // These errors are returned with the |kService| error category and | 
|  | // indicate critical or configuration errors in the update service. | 
|  | enum class ServiceError { | 
|  | NONE = 0, | 
|  | SERVICE_WAIT_FAILED = 1, | 
|  | UPDATE_DISABLED = 2, | 
|  | }; | 
|  |  | 
|  | // These errors are related to serialization, deserialization, and parsing of | 
|  | // protocol requests. | 
|  | // The begin value for this enum is chosen not to conflict with network errors | 
|  | // defined by net/base/net_error_list.h. The callers don't have to handle this | 
|  | // error in any meaningful way, but this value may be reported in UMA stats, | 
|  | // therefore avoiding collisions with known network errors is desirable. | 
|  | enum class ProtocolError : int { | 
|  | NONE = 0, | 
|  | RESPONSE_NOT_TRUSTED = -10000, | 
|  | MISSING_PUBLIC_KEY = -10001, | 
|  | MISSING_URLS = -10002, | 
|  | PARSE_FAILED = -10003, | 
|  | UPDATE_RESPONSE_NOT_FOUND = -10004, | 
|  | URL_FETCHER_FAILED = -10005, | 
|  | UNKNOWN_APPLICATION = -10006, | 
|  | RESTRICTED_APPLICATION = -10007, | 
|  | INVALID_APPID = -10008, | 
|  | }; | 
|  |  | 
|  | }  // namespace update_client | 
|  |  | 
|  | #endif  // COMPONENTS_UPDATE_CLIENT_UPDATE_CLIENT_ERRORS_H_ |