#include "chrome/browser/web_applications/commands/web_app_uninstall_command.h"
#include <memory>
#include <utility>
#include "base/check.h"
#include "base/functional/bind.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_functions.h"
#include "base/notreached.h"
#include "chrome/browser/web_applications/commands/web_app_command.h"
#include "chrome/browser/web_applications/jobs/uninstall/remove_install_source_job.h"
#include "chrome/browser/web_applications/jobs/uninstall/remove_install_url_job.h"
#include "chrome/browser/web_applications/jobs/uninstall/remove_web_app_job.h"
#include "chrome/browser/web_applications/jobs/uninstall/uninstall_job.h"
#include "chrome/browser/web_applications/locks/all_apps_lock.h"
#include "chrome/browser/web_applications/web_app_constants.h"
#include "components/webapps/browser/installable/installable_metrics.h"
#include "components/webapps/browser/uninstall_result_code.h"
namespace web_app {
std::unique_ptr<WebAppUninstallCommand>
WebAppUninstallCommand::CreateForRemoveInstallUrl(
webapps::WebappUninstallSource uninstall_source,
Profile& profile,
std::optional<webapps::AppId> app_id,
WebAppManagement::Type install_source,
GURL install_url,
UninstallJob::Callback callback) { … }
std::unique_ptr<WebAppUninstallCommand>
WebAppUninstallCommand::CreateForRemoveInstallManagements(
webapps::WebappUninstallSource uninstall_source,
Profile& profile,
webapps::AppId app_id,
WebAppManagementTypes install_sources,
UninstallJob::Callback callback) { … }
std::unique_ptr<WebAppUninstallCommand>
WebAppUninstallCommand::CreateForRemoveUserUninstallableManagement(
webapps::WebappUninstallSource uninstall_source,
Profile& profile,
webapps::AppId app_id,
UninstallJob::Callback callback) { … }
WebAppUninstallCommand::WebAppUninstallCommand(
webapps::WebappUninstallSource uninstall_source,
Profile& profile,
std::optional<webapps::AppId> app_id,
WebAppManagement::Type install_source,
GURL install_url,
UninstallJob::Callback callback)
: … { … }
WebAppUninstallCommand::WebAppUninstallCommand(
webapps::WebappUninstallSource uninstall_source,
Profile& profile,
webapps::AppId app_id,
WebAppManagementTypes install_managements,
UninstallJob::Callback callback)
: … { … }
WebAppUninstallCommand::WebAppUninstallCommand(
webapps::WebappUninstallSource uninstall_source,
Profile& profile,
webapps::AppId app_id,
UninstallJob::Callback callback)
: … { … }
WebAppUninstallCommand::~WebAppUninstallCommand() = default;
void WebAppUninstallCommand::OnShutdown(
base::PassKey<WebAppCommandManager>) const { … }
void WebAppUninstallCommand::StartWithLock(std::unique_ptr<AllAppsLock> lock) { … }
void WebAppUninstallCommand::OnCompletion(webapps::UninstallResultCode code) { … }
}