chromium/chrome/browser/ash/app_mode/kiosk_app_manager_observer.h

// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_ASH_APP_MODE_KIOSK_APP_MANAGER_OBSERVER_H_
#define CHROME_BROWSER_ASH_APP_MODE_KIOSK_APP_MANAGER_OBSERVER_H_

#include <string>

#include "base/observer_list_types.h"

namespace ash {

class KioskAppManagerObserver : public base::CheckedObserver {
 public:
  // Invoked when the app data is changed or loading state is changed.
  virtual void OnKioskAppDataChanged(const std::string& app_id) {}

  // Invoked when failed to load web store data of an app.
  virtual void OnKioskAppDataLoadFailure(const std::string& app_id) {}

  // Invoked when the extension is loaded in cache.
  virtual void OnKioskExtensionLoadedInCache(const std::string& app_id) {}

  // Invoked when the extension download fails.
  virtual void OnKioskExtensionDownloadFailed(const std::string& app_id) {}

  // Invoked when the Kiosk Apps configuration changes.
  virtual void OnKioskAppsSettingsChanged() {}

  // Invoked when kiosk app cache is updated for `app_id`.
  virtual void OnKioskAppCacheUpdated(const std::string& app_id) {}

  // Invoked when kiosk app updating from usb stick has been completed.
  // `success` indicates if all the updates are completed successfully.
  virtual void OnKioskAppExternalUpdateComplete(bool success) {}

  // Called when kiosk app session initialization is complete - i.e. when
  // KioskChromeAppManager::InitSession() is called.
  virtual void OnKioskSessionInitialized() {}

 protected:
  ~KioskAppManagerObserver() override = default;
};

}  // namespace ash

#endif  // CHROME_BROWSER_ASH_APP_MODE_KIOSK_APP_MANAGER_OBSERVER_H_