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.
4
5#ifndef CHROME_BROWSER_UI_APP_LIST_EXTENSION_UNINSTALLER_H_
6#define CHROME_BROWSER_UI_APP_LIST_EXTENSION_UNINSTALLER_H_
7
8#include "chrome/browser/extensions/extension_uninstall_dialog.h"
9
10class AppListControllerDelegate;
11class Profile;
12
13// ExtensionUninstaller runs the extension uninstall flow. It shows the
14// extension uninstall dialog and wait for user to confirm or cancel the
15// uninstall.
16class ExtensionUninstaller
17    : public extensions::ExtensionUninstallDialog::Delegate {
18 public:
19  ExtensionUninstaller(Profile* profile,
20                       const std::string& extension_id,
21                       AppListControllerDelegate* controller);
22  virtual ~ExtensionUninstaller();
23
24  void Run();
25
26 private:
27  // Overridden from ExtensionUninstallDialog::Delegate:
28  virtual void ExtensionUninstallAccepted() OVERRIDE;
29  virtual void ExtensionUninstallCanceled() OVERRIDE;
30  void CleanUp();
31
32  Profile* profile_;
33  std::string app_id_;
34  AppListControllerDelegate* controller_;
35  scoped_ptr<extensions::ExtensionUninstallDialog> dialog_;
36
37  DISALLOW_COPY_AND_ASSIGN(ExtensionUninstaller);
38};
39
40
41#endif  // CHROME_BROWSER_UI_APP_LIST_EXTENSION_UNINSTALLER_H_
42