#ifndef CHROME_BROWSER_WEB_APPLICATIONS_EXTENSIONS_WEB_APP_EXTENSION_SHORTCUT_H_
#define CHROME_BROWSER_WEB_APPLICATIONS_EXTENSIONS_WEB_APP_EXTENSION_SHORTCUT_H_
#include <memory>
#include <string>
#include "base/functional/callback_forward.h"
#include "build/build_config.h"
#include "chrome/browser/web_applications/os_integration/os_integration_sub_manager.h"
#include "chrome/browser/web_applications/os_integration/web_app_shortcut.h"
#include "components/webapps/common/web_app_id.h"
class Profile;
namespace extensions {
class Extension;
}
namespace web_app {
ShortcutInfoCallback;
void CreateShortcutsWithInfo(ShortcutCreationReason reason,
const ShortcutLocations& locations,
CreateShortcutsCallback callback,
std::unique_ptr<ShortcutInfo> shortcut_info);
void GetShortcutInfoForApp(const extensions::Extension* extension,
Profile* profile,
ShortcutInfoCallback callback);
std::unique_ptr<ShortcutInfo> ShortcutInfoForExtensionAndProfile(
const extensions::Extension* app,
Profile* profile);
bool ShouldCreateShortcutFor(ShortcutCreationReason reason,
Profile* profile,
const extensions::Extension* extension);
void CreateShortcuts(ShortcutCreationReason reason,
const ShortcutLocations& locations,
Profile* profile,
const extensions::Extension* app,
CreateShortcutsCallback callback);
void DeleteAllShortcuts(Profile* profile, const extensions::Extension* app);
void WaitForExtensionShortcutsDeleted(const webapps::AppId& app_id,
base::OnceClosure callback);
void UpdateAllShortcuts(const std::u16string& old_app_title,
Profile* profile,
const extensions::Extension* app,
base::OnceClosure callback);
void UpdateShortcutsForAllApps(Profile* profile, base::OnceClosure callback);
#if BUILDFLAG(IS_WIN)
void UpdateRelaunchDetailsForApp(Profile* profile,
const extensions::Extension* extension,
HWND hwnd);
#endif
SynchronizeOsOptions ConvertShortcutLocationsToSynchronizeOptions(
const ShortcutLocations& locations,
ShortcutCreationReason reason);
}
#endif