#ifndef CHROME_BROWSER_WEB_APPLICATIONS_MANIFEST_UPDATE_UTILS_H_
#define CHROME_BROWSER_WEB_APPLICATIONS_MANIFEST_UPDATE_UTILS_H_
#include <iosfwd>
#include <string>
#include "chrome/browser/web_applications/web_app_constants.h"
#include "chrome/browser/web_applications/web_app_icon_generator.h"
#include "chrome/browser/web_applications/web_app_install_info.h"
#include "chrome/browser/web_applications/web_app_install_utils.h"
#include "components/webapps/common/web_app_id.h"
namespace web_app {
class WebApp;
class WebAppRegistrar;
constexpr SquareSizePx kIdentitySizes[] = …;
enum class ManifestUpdateResult { … };
std::ostream& operator<<(std::ostream& os, ManifestUpdateResult result);
enum class ManifestUpdateCheckStage { … };
std::ostream& operator<<(std::ostream& os, ManifestUpdateCheckStage stage);
enum class ManifestUpdateCheckResult { … };
std::ostream& operator<<(std::ostream& os, ManifestUpdateCheckResult result);
ManifestUpdateResult FinalResultFromManifestUpdateCheckResult(
ManifestUpdateCheckResult check_result);
void RecordIconDownloadMetrics(IconsDownloadedResult result,
DownloadedIconsHttpResults icons_http_results);
bool CanWebAppSilentlyUpdateIdentity(const WebApp& web_app);
bool CanShowIdentityUpdateConfirmationDialog(const WebAppRegistrar& registrar,
const WebApp& web_app);
struct AppIconIdentityChange { … };
enum class IdentityUpdateDecision { … };
struct ManifestDataChanges { … };
ManifestDataChanges GetManifestDataChanges(
const WebApp& existing_web_app,
const IconBitmaps* existing_app_icon_bitmaps,
const ShortcutsMenuIconBitmaps* existing_shortcuts_menu_icon_bitmaps,
const WebAppInstallInfo& new_install_info);
std::optional<AppIconIdentityChange> CompareIdentityIconBitmaps(
const IconBitmaps& existing_app_icon_bitmaps,
const IconBitmaps& new_app_icon_bitmaps);
void RecordIdentityConfirmationMetrics(
const ManifestDataChanges& manifest_data_changes,
const WebApp& web_app);
}
#endif