| // 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 CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_ERROR_H_ |
| #define CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_ERROR_H_ |
| |
| #include "base/strings/string16.h" |
| |
| namespace extensions { |
| |
| // Simple error class for CrxInstaller. |
| class CrxInstallerError { |
| public: |
| // Typed errors that need to be handled specially by clients. |
| enum Type { |
| ERROR_NONE, |
| ERROR_OFF_STORE, |
| ERROR_OTHER |
| }; |
| |
| CrxInstallerError() : type_(ERROR_NONE) { |
| } |
| |
| explicit CrxInstallerError(const base::string16& message) |
| : type_(message.empty() ? ERROR_NONE : ERROR_OTHER), |
| message_(message) { |
| } |
| |
| CrxInstallerError(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 // CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_ERROR_H_ |