Don't show supervised user as "already on this device" while they're being imported.
[chromium-blink-merge.git] / chrome / browser / ui / app_list / extension_uninstaller.cc
blob7927afa60e0a8f2a9c79791f87170dc268258f05
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/app_list/extension_uninstaller.h"
7 #include "chrome/browser/extensions/extension_service.h"
8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/ui/app_list/app_list_controller_delegate.h"
10 #include "extensions/browser/extension_system.h"
11 #include "extensions/browser/uninstall_reason.h"
12 #include "extensions/common/extension.h"
14 ExtensionUninstaller::ExtensionUninstaller(
15 Profile* profile,
16 const std::string& extension_id,
17 AppListControllerDelegate* controller)
18 : profile_(profile),
19 app_id_(extension_id),
20 controller_(controller) {
23 ExtensionUninstaller::~ExtensionUninstaller() {
26 void ExtensionUninstaller::Run() {
27 const extensions::Extension* extension =
28 extensions::ExtensionSystem::Get(profile_)->extension_service()->
29 GetInstalledExtension(app_id_);
30 if (!extension) {
31 CleanUp();
32 return;
34 controller_->OnShowChildDialog();
35 dialog_.reset(extensions::ExtensionUninstallDialog::Create(
36 profile_, controller_->GetAppListWindow(), this));
37 dialog_->ConfirmUninstall(extension,
38 extensions::UNINSTALL_REASON_USER_INITIATED);
41 void ExtensionUninstaller::OnExtensionUninstallDialogClosed(
42 bool did_start_uninstall,
43 const base::string16& error) {
44 controller_->OnCloseChildDialog();
45 CleanUp();
48 void ExtensionUninstaller::CleanUp() {
49 delete this;