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_CHROME_PAGES_H_
6#define CHROME_BROWSER_UI_CHROME_PAGES_H_
7
8#include <string>
9
10#include "chrome/browser/signin/signin_promo.h"
11#include "chrome/browser/ui/host_desktop.h"
12#include "components/content_settings/core/common/content_settings_types.h"
13#include "url/gurl.h"
14
15class Browser;
16
17namespace content {
18class WebContents;
19}
20
21namespace chrome {
22
23// Sources of requests to show the help tab.
24enum HelpSource {
25  // Keyboard accelerators.
26  HELP_SOURCE_KEYBOARD,
27
28  // Menus (e.g. wrench menu or Chrome OS system menu).
29  HELP_SOURCE_MENU,
30
31  // WebUI (the "About" page).
32  HELP_SOURCE_WEBUI,
33};
34
35
36void ShowBookmarkManager(Browser* browser);
37void ShowBookmarkManagerForNode(Browser* browser, int64 node_id);
38void ShowHistory(Browser* browser);
39void ShowDownloads(Browser* browser);
40void ShowExtensions(Browser* browser,
41                    const std::string& extension_to_highlight);
42void ShowConflicts(Browser* browser);
43
44// ShowFeedbackPage() uses |browser| to determine the URL of the current tab.
45// |browser| should be NULL if there are no currently open browser windows.
46void ShowFeedbackPage(Browser* browser,
47                      const std::string& description_template,
48                      const std::string& category_tag);
49
50void ShowHelp(Browser* browser, HelpSource source);
51void ShowHelpForProfile(Profile* profile,
52                        HostDesktopType host_desktop_type,
53                        HelpSource source);
54void ShowPolicy(Browser* browser);
55void ShowSlow(Browser* browser);
56
57// Constructs a settings GURL for the specified |sub_page|.
58GURL GetSettingsUrl(const std::string& sub_page);
59
60// Returns true if |browser| is a trusted popup window containing a page with
61// matching |scheme| (or any trusted popup if |scheme| is empty).
62bool IsTrustedPopupWindowWithScheme(const Browser* browser,
63                                    const std::string& scheme);
64
65// Various things that open in a settings UI.
66void ShowSettings(Browser* browser);
67void ShowSettingsSubPage(Browser* browser, const std::string& sub_page);
68void ShowSettingsSubPageForProfile(Profile* profile,
69                                   const std::string& sub_page);
70void ShowContentSettings(Browser* browser,
71                         ContentSettingsType content_settings_type);
72void ShowSettingsSubPageInTabbedBrowser(Browser* browser,
73                                        const std::string& sub_page);
74void ShowClearBrowsingDataDialog(Browser* browser);
75void ShowPasswordManager(Browser* browser);
76void ShowImportDialog(Browser* browser);
77void ShowAboutChrome(Browser* browser);
78void ShowSearchEngineSettings(Browser* browser);
79// If the user is already signed in, shows the "Signin" portion of Settings,
80// otherwise initiates signin.
81void ShowBrowserSignin(Browser* browser, signin::Source source);
82
83}  // namespace chrome
84
85#endif  // CHROME_BROWSER_UI_CHROME_PAGES_H_
86