Home | History | Annotate | Download | only in ui
      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 "ipc/ipc_message.h"  // For IPC_MESSAGE_LOG_ENABLED.
     10 #include "third_party/skia/include/core/SkColor.h"
     11 #include "ui/gfx/native_widget_types.h"
     12 
     13 class Browser;
     14 class Profile;
     15 class SkBitmap;
     16 class TabModalConfirmDialogDelegate;
     17 
     18 namespace content {
     19 class BrowserContext;
     20 class ColorChooser;
     21 class WebContents;
     22 }
     23 
     24 namespace extensions {
     25 class Extension;
     26 }
     27 
     28 namespace ui {
     29 class ProfileSigninConfirmationDelegate;
     30 class WebDialogDelegate;
     31 }
     32 
     33 namespace chrome {
     34 
     35 #if defined(IPC_MESSAGE_LOG_ENABLED)
     36 
     37 // The dialog is a singleton. If the dialog is already opened, it won't do
     38 // anything, so you can just blindly call this function all you want.
     39 // This is called from chrome/browser/browser_about_handler.cc
     40 void ShowAboutIPCDialog();
     41 
     42 #endif  // IPC_MESSAGE_LOG_ENABLED
     43 
     44 // Creates and shows an HTML dialog with the given delegate and context.
     45 // The window is automatically destroyed when it is closed.
     46 // Returns the created window.
     47 //
     48 // Make sure to use the returned window only when you know it is safe
     49 // to do so, i.e. before OnDialogClosed() is called on the delegate.
     50 gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
     51                                 content::BrowserContext* context,
     52                                 ui::WebDialogDelegate* delegate);
     53 
     54 // Shows the collected cookies dialog box.
     55 void ShowCollectedCookiesDialog(content::WebContents* web_contents);
     56 
     57 // Creates the ExtensionInstalledBubble and schedules it to be shown once
     58 // the extension has loaded. |extension| is the installed extension. |browser|
     59 // is the browser window which will host the bubble. |icon| is the install
     60 // icon of the extension.
     61 void ShowExtensionInstalledBubble(const extensions::Extension* extension,
     62                                   Browser* browser,
     63                                   const SkBitmap& icon);
     64 
     65 // Shows or hide the hung renderer dialog for the given WebContents.
     66 // We need to pass the WebContents to the dialog, because multiple tabs can hang
     67 // and it needs to keep track of which tabs are currently hung.
     68 void ShowHungRendererDialog(content::WebContents* contents);
     69 void HideHungRendererDialog(content::WebContents* contents);
     70 
     71 // Shows the Task Manager. |browser| can be NULL when called from Ash.
     72 void ShowTaskManager(Browser* browser);
     73 
     74 #if !defined(OS_MACOSX)
     75 // Shows the create web app shortcut dialog box.
     76 void ShowCreateWebAppShortcutsDialog(gfx::NativeWindow parent_window,
     77                                      content::WebContents* web_contents);
     78 #endif
     79 
     80 // Shows the create chrome app shortcut dialog box.
     81 // On Mac, this creates a shortcut without prompting.
     82 // |close_callback| may be null.
     83 void ShowCreateChromeAppShortcutsDialog(gfx::NativeWindow parent_window,
     84                                         Profile* profile,
     85                                         const extensions::Extension* app,
     86                                         const base::Closure& close_callback);
     87 
     88 // Shows a color chooser that reports to the given WebContents.
     89 content::ColorChooser* ShowColorChooser(content::WebContents* web_contents,
     90                                         SkColor initial_color);
     91 
     92 void ShowProfileSigninConfirmationDialog(
     93     Browser* browser,
     94     content::WebContents* web_contents,
     95     Profile* profile,
     96     const std::string& username,
     97     ui::ProfileSigninConfirmationDelegate* delegate);
     98 
     99 
    100 // Shows the Desktop User Manager with the |profile_path_to_focus| user focused.
    101 void ShowUserManager(const base::FilePath& profile_path_to_focus);
    102 
    103 // Hides the User Manager.
    104 void HideUserManager();
    105 
    106 }  // namespace chrome
    107 
    108 #endif  // CHROME_BROWSER_UI_BROWSER_DIALOGS_H_
    109