#include "chrome/browser/web_applications/jobs/uninstall/remove_web_app_job.h"
#include <memory>
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/metrics/histogram_functions.h"
#include "base/strings/to_string.h"
#include "chrome/browser/web_applications/isolated_web_apps/remove_isolated_web_app_data.h"
#include "chrome/browser/web_applications/jobs/uninstall/remove_install_source_job.h"
#include "chrome/browser/web_applications/locks/all_apps_lock.h"
#include "chrome/browser/web_applications/os_integration/os_integration_manager.h"
#include "chrome/browser/web_applications/proto/web_app_os_integration_state.pb.h"
#include "chrome/browser/web_applications/user_uninstalled_preinstalled_web_app_prefs.h"
#include "chrome/browser/web_applications/web_app.h"
#include "chrome/browser/web_applications/web_app_constants.h"
#include "chrome/browser/web_applications/web_app_icon_manager.h"
#include "chrome/browser/web_applications/web_app_install_finalizer.h"
#include "chrome/browser/web_applications/web_app_install_manager.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
#include "chrome/browser/web_applications/web_app_registry_update.h"
#include "chrome/browser/web_applications/web_app_sync_bridge.h"
#include "chrome/browser/web_applications/web_app_translation_manager.h"
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/webapps/browser/installable/installable_metrics.h"
#include "components/webapps/browser/uninstall_result_code.h"
namespace web_app {
namespace {
bool IsOsIntegrationRemovedForApp(
std::optional<proto::WebAppOsIntegrationState> state) { … }
}
RemoveWebAppJob::RemoveWebAppJob(
webapps::WebappUninstallSource uninstall_source,
Profile& profile,
base::Value::Dict& debug_value,
webapps::AppId app_id)
: … { … }
RemoveWebAppJob::~RemoveWebAppJob() = default;
void RemoveWebAppJob::Start(AllAppsLock& lock, Callback callback) { … }
webapps::WebappUninstallSource RemoveWebAppJob::uninstall_source() const { … }
void RemoveWebAppJob::SynchronizeAndUninstallOsHooks() { … }
void RemoveWebAppJob::OnIconDataDeleted(bool success) { … }
void RemoveWebAppJob::OnTranslationDataDeleted(bool success) { … }
void RemoveWebAppJob::OnIsolatedWebAppBrowsingDataCleared() { … }
void RemoveWebAppJob::OnIsolatedWebAppOwnedLocationDeleted() { … }
void RemoveWebAppJob::MaybeFinishPrimaryRemoval() { … }
void RemoveWebAppJob::ProcessSubAppsPendingRemovalOrComplete() { … }
void RemoveWebAppJob::CompleteAndSelfDestruct(
webapps::UninstallResultCode code) { … }
}