| // Copyright (c) 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. |
| |
| #ifndef EXTENSIONS_BROWSER_INSTALL_CRX_INSTALL_ERROR_H_ |
| #define EXTENSIONS_BROWSER_INSTALL_CRX_INSTALL_ERROR_H_ |
| |
| #include "base/strings/string16.h" |
| |
| namespace extensions { |
| |
| // Simple error class for CrxInstaller. |
| class CrxInstallError { |
| public: |
| // Typed errors that need to be handled specially by clients. |
| // ERROR_OFF_STORE for disallowed off-store installations. |
| // ERROR_DECLINED for situations when a .crx file seems to be OK, but there |
| // are some policy restrictions or unmet dependencies that prevent it from |
| // being installed. |
| // ERROR_HASH_MISMATCH if the expected extension SHA256 hash sum is different |
| // from the actual one. |
| enum Type { |
| ERROR_NONE, |
| ERROR_OFF_STORE, |
| ERROR_DECLINED, |
| ERROR_HASH_MISMATCH, |
| ERROR_OTHER |
| }; |
| |
| CrxInstallError() : type_(ERROR_NONE) {} |
| |
| explicit CrxInstallError(const base::string16& message) |
| : type_(message.empty() ? ERROR_NONE : ERROR_OTHER), message_(message) {} |
| |
| CrxInstallError(Type type, const base::string16& message) |
| : type_(type), message_(message) {} |
| |
| Type type() const { return type_; } |
| const base::string16& message() const { return message_; } |
| |
| private: |
| Type type_; |
| base::string16 message_; |
| }; |
| |
| } // namespace extensions |
| |
| #endif // EXTENSIONS_BROWSER_INSTALL_CRX_INSTALL_ERROR_H_ |