| // Copyright 2013 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_INSTALL_OBSERVER_H_ | 
 | #define CHROME_BROWSER_EXTENSIONS_INSTALL_OBSERVER_H_ | 
 |  | 
 | #include <string> | 
 |  | 
 | #include "ui/gfx/image/image_skia.h" | 
 |  | 
 | namespace extensions { | 
 |  | 
 | class Extension; | 
 |  | 
 | class InstallObserver { | 
 |  public: | 
 |   struct ExtensionInstallParams { | 
 |     ExtensionInstallParams( | 
 |         std::string extension_id, | 
 |         std::string extension_name, | 
 |         gfx::ImageSkia installing_icon, | 
 |         bool is_app, | 
 |         bool is_platform_app); | 
 |  | 
 |     std::string extension_id; | 
 |     std::string extension_name; | 
 |     gfx::ImageSkia installing_icon; | 
 |     bool is_app; | 
 |     bool is_platform_app; | 
 |   }; | 
 |  | 
 |   // Called at the beginning of the complete installation process, i.e., this | 
 |   // is called before the extension download begins. | 
 |   virtual void OnBeginExtensionInstall(const ExtensionInstallParams& params) {} | 
 |  | 
 |   // Called when the Extension begins the download process. This typically | 
 |   // happens right after OnBeginExtensionInstall(), unless the extension has | 
 |   // already been downloaded. | 
 |   virtual void OnBeginExtensionDownload(const std::string& extension_id) {} | 
 |  | 
 |   // Called whenever the extension download is updated. | 
 |   // Note: Some extensions have multiple modules, so the percent included here | 
 |   // is a simple calculation of: | 
 |   // (finished_files * 100 + current_file_progress) / (total files * 100). | 
 |   virtual void OnDownloadProgress(const std::string& extension_id, | 
 |                                   int percent_downloaded) {} | 
 |  | 
 |   // Called when the necessary downloads have completed, and the crx | 
 |   // installation is due to start. | 
 |   virtual void OnBeginCrxInstall(const std::string& extension_id) {} | 
 |  | 
 |   // Called when installation of a crx has completed (either successfully or | 
 |   // not). | 
 |   virtual void OnFinishCrxInstall(const std::string& extension_id, | 
 |                                   bool success) {} | 
 |  | 
 |   // Called if the extension fails to install. | 
 |   virtual void OnInstallFailure(const std::string& extension_id) {} | 
 |  | 
 |   // Called when an extension or an app is installed to the app list. These are | 
 |   // simply forwarded from the chrome::NOTIFICATIONs. | 
 |   virtual void OnDisabledExtensionUpdated(const Extension* extension) {} | 
 |  | 
 |   // Called when the app list is reordered. | 
 |   virtual void OnAppsReordered() {} | 
 |  | 
 |   // Notifies observers that the observed object is going away. | 
 |   virtual void OnShutdown() {} | 
 |  | 
 |  protected: | 
 |   virtual ~InstallObserver() {} | 
 | }; | 
 |  | 
 | }  // namespace extensions | 
 |  | 
 | #endif  // CHROME_BROWSER_EXTENSIONS_INSTALL_OBSERVER_H_ |