Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / browser_dialogs.h
1 // Copyright (c) 2012 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_BROWSER_DIALOGS_H_
6 #define CHROME_BROWSER_UI_BROWSER_DIALOGS_H_
7
8 #include "base/callback.h"
9 #include "chrome/browser/profiles/profile_window.h"
10 #include "content/public/common/signed_certificate_timestamp_id_and_status.h"
11 #include "ipc/ipc_message.h"  // For IPC_MESSAGE_LOG_ENABLED.
12 #include "third_party/skia/include/core/SkColor.h"
13 #include "ui/gfx/native_widget_types.h"
14
15 class Browser;
16 class Profile;
17 class SkBitmap;
18 class TabModalConfirmDialogDelegate;
19
20 namespace content {
21 class BrowserContext;
22 class ColorChooser;
23 class WebContents;
24 }
25
26 namespace extensions {
27 class Extension;
28 }
29
30 namespace ui {
31 class ProfileSigninConfirmationDelegate;
32 class WebDialogDelegate;
33 }
34
35 namespace chrome {
36
37 #if defined(IPC_MESSAGE_LOG_ENABLED)
38
39 // The dialog is a singleton. If the dialog is already opened, it won't do
40 // anything, so you can just blindly call this function all you want.
41 // This is called from chrome/browser/browser_about_handler.cc
42 void ShowAboutIPCDialog();
43
44 #endif  // IPC_MESSAGE_LOG_ENABLED
45
46 // Creates and shows an HTML dialog with the given delegate and context.
47 // The window is automatically destroyed when it is closed.
48 // Returns the created window.
49 //
50 // Make sure to use the returned window only when you know it is safe
51 // to do so, i.e. before OnDialogClosed() is called on the delegate.
52 gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
53                                 content::BrowserContext* context,
54                                 ui::WebDialogDelegate* delegate);
55
56 // Shows the collected cookies dialog box.
57 void ShowCollectedCookiesDialog(content::WebContents* web_contents);
58
59 // Creates the ExtensionInstalledBubble and schedules it to be shown once
60 // the extension has loaded. |extension| is the installed extension. |browser|
61 // is the browser window which will host the bubble. |icon| is the install
62 // icon of the extension.
63 void ShowExtensionInstalledBubble(const extensions::Extension* extension,
64                                   Browser* browser,
65                                   const SkBitmap& icon);
66
67 // Shows or hide the hung renderer dialog for the given WebContents.
68 // We need to pass the WebContents to the dialog, because multiple tabs can hang
69 // and it needs to keep track of which tabs are currently hung.
70 void ShowHungRendererDialog(content::WebContents* contents);
71 void HideHungRendererDialog(content::WebContents* contents);
72
73 // Shows the Task Manager. |browser| can be NULL when called from Ash.
74 void ShowTaskManager(Browser* browser);
75
76 #if !defined(OS_MACOSX)
77 // Shows the create web app shortcut dialog box.
78 void ShowCreateWebAppShortcutsDialog(gfx::NativeWindow parent_window,
79                                      content::WebContents* web_contents);
80 #endif
81
82 // Shows the create chrome app shortcut dialog box.
83 // |close_callback| may be null.
84 void ShowCreateChromeAppShortcutsDialog(
85     gfx::NativeWindow parent_window,
86     Profile* profile,
87     const extensions::Extension* app,
88     const base::Callback<void(bool /* created */)>& close_callback);
89
90 // Shows a color chooser that reports to the given WebContents.
91 content::ColorChooser* ShowColorChooser(content::WebContents* web_contents,
92                                         SkColor initial_color);
93
94 void ShowProfileSigninConfirmationDialog(
95     Browser* browser,
96     content::WebContents* web_contents,
97     Profile* profile,
98     const std::string& username,
99     ui::ProfileSigninConfirmationDelegate* delegate);
100
101
102 // Shows the Desktop User Manager with the |profile_path_to_focus| user focused.
103 void ShowUserManager(const base::FilePath& profile_path_to_focus);
104
105 // Shows the Desktop User Manager with a specific |tutorial|.
106 void ShowUserManagerWithTutorial(profiles::UserManagerTutorialMode tutorial);
107
108 // Hides the User Manager.
109 void HideUserManager();
110
111 // Shows the Signed Certificate Timestamps viewer, to view the signed
112 // certificate timestamps in |sct_ids_list|
113 void ShowSignedCertificateTimestampsViewer(
114     content::WebContents* web_contents,
115     const content::SignedCertificateTimestampIDStatusList& sct_ids_list);
116
117 #if !defined(OS_MACOSX)
118 // Shows the ManagePasswords bubble for a particular |web_contents|.
119 //
120 // TODO(mkwst): Implement this feature on Mac: http://crbug.com/261628
121 void ShowManagePasswordsBubble(content::WebContents* web_contents);
122 #endif
123
124 }  // namespace chrome
125
126 #endif  // CHROME_BROWSER_UI_BROWSER_DIALOGS_H_