Home | History | Annotate | Download | only in extensions
      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