#include "chrome/browser/extensions/extension_uninstall_dialog.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/chrome_app_icon_service.h"
#include "chrome/browser/extensions/extension_management.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser_navigator.h"
#include "chrome/browser/ui/browser_navigator_params.h"
#include "chrome/grit/branded_strings.h"
#include "chrome/grit/generated_resources.h"
#include "content/public/browser/clear_site_data_utils.h"
#include "extensions/browser/extension_dialog_auto_confirm.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/image_loader.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_urls.h"
#include "extensions/common/manifest_handlers/icons_handler.h"
#include "extensions/common/manifest_url_handlers.h"
#include "ui/base/page_transition_types.h"
#include "ui/base/window_open_disposition.h"
#include "ui/display/display.h"
#include "ui/display/screen.h"
#include "ui/gfx/image/image.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/views/native_window_tracker.h"
#include "url/origin.h"
namespace extensions {
namespace {
constexpr int kIconSize = …;
constexpr char16_t kExtensionRemovedError[] = …;
constexpr char kReferrerId[] = …;
float GetScaleFactor(gfx::NativeWindow window) { … }
base::RepeatingClosure* g_on_will_show_callback = …;
}
void ExtensionUninstallDialog::SetOnShownCallbackForTesting(
base::RepeatingClosure* callback) { … }
ExtensionUninstallDialog::ExtensionUninstallDialog(
Profile* profile,
gfx::NativeWindow parent,
ExtensionUninstallDialog::Delegate* delegate)
: … { … }
ExtensionUninstallDialog::~ExtensionUninstallDialog() = default;
void ExtensionUninstallDialog::ConfirmUninstallByExtension(
const scoped_refptr<const Extension>& extension,
const scoped_refptr<const Extension>& triggering_extension,
UninstallReason reason,
UninstallSource source) { … }
void ExtensionUninstallDialog::ConfirmUninstall(
const scoped_refptr<const Extension>& extension,
UninstallReason reason,
UninstallSource source) { … }
void ExtensionUninstallDialog::OnIconUpdated(ChromeAppIcon* icon) { … }
void ExtensionUninstallDialog::OnExtensionUninstalled(
content::BrowserContext* browser_context,
const Extension* extension,
UninstallReason reason) { … }
void ExtensionUninstallDialog::OnProfileWillBeDestroyed(Profile* profile) { … }
bool ExtensionUninstallDialog::ShouldShowCheckbox() const { … }
void ExtensionUninstallDialog::OnDialogClosed(CloseAction action) { … }
bool ExtensionUninstallDialog::Uninstall(std::u16string* error) { … }
void ExtensionUninstallDialog::HandleReportAbuse() { … }
}