// 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;
bool is_ephemeral;
};
// 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) {}
virtual void OnAppInstalledToAppList(const std::string& extension_id) {}
// 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_