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 CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_ERROR_H_ 6 #define CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_ERROR_H_ 7 8 #include "base/strings/string16.h" 9 10 namespace extensions { 11 12 // Simple error class for CrxInstaller. 13 class CrxInstallerError { 14 public: 15 // Typed errors that need to be handled specially by clients. 16 enum Type { 17 ERROR_NONE, 18 ERROR_OFF_STORE, 19 ERROR_OTHER 20 }; 21 22 CrxInstallerError() : type_(ERROR_NONE) { 23 } 24 25 explicit CrxInstallerError(const base::string16& message) 26 : type_(message.empty() ? ERROR_NONE : ERROR_OTHER), 27 message_(message) { 28 } 29 30 CrxInstallerError(Type type, const base::string16& message) 31 : type_(type), message_(message) { 32 } 33 34 Type type() const { return type_; } 35 const base::string16& message() const { return message_; } 36 37 private: 38 Type type_; 39 base::string16 message_; 40 }; 41 42 } // namespace extensions 43 44 #endif // CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_ERROR_H_ 45