Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / extensions / windowed_install_dialog_controller.h
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_COCOA_EXTENSIONS_WINDOWED_INSTALL_DIALOG_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_COCOA_EXTENSIONS_WINDOWED_INSTALL_DIALOG_CONTROLLER_H_
7
8 #import <Cocoa/Cocoa.h>
9
10 #include "base/gtest_prod_util.h"
11 #include "base/mac/scoped_nsobject.h"
12 #include "chrome/browser/extensions/extension_install_prompt.h"
13
14 class ExtensionInstallPromptShowParams;
15 @class ExtensionInstallViewController;
16 @class WindowedInstallController;
17
18 // Displays an app or extension install or permissions prompt as a standalone
19 // NSPanel.
20 class WindowedInstallDialogController
21     : public ExtensionInstallPrompt::Delegate {
22  public:
23   // Initializes the ExtensionInstallViewController and shows the window. This
24   // object will delete itself when the window is closed.
25   WindowedInstallDialogController(
26       ExtensionInstallPromptShowParams* show_params,
27       ExtensionInstallPrompt::Delegate* delegate,
28       scoped_refptr<ExtensionInstallPrompt::Prompt> prompt);
29   ~WindowedInstallDialogController() override;
30
31   // Invoked by the -[NSWindow windowWillClose:] notification after a dialog
32   // choice is invoked. Releases owned resources, then deletes |this|.
33   void OnWindowClosing();
34
35   // ExtensionInstallPrompt::Delegate:
36   void InstallUIProceed() override;
37   void InstallUIAbort(bool user_initiated) override;
38
39  private:
40   FRIEND_TEST_ALL_PREFIXES(WindowedInstallDialogControllerBrowserTest,
41                            ShowInstallDialog);
42   ExtensionInstallViewController* GetViewController();
43
44   ExtensionInstallPrompt::Delegate* delegate_;
45   base::scoped_nsobject<WindowedInstallController> install_controller_;
46
47   DISALLOW_COPY_AND_ASSIGN(WindowedInstallDialogController);
48 };
49
50 #endif  // CHROME_BROWSER_UI_COCOA_EXTENSIONS_WINDOWED_INSTALL_DIALOG_CONTROLLER_H_