15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_CHROME_PAGES_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_CHROME_PAGES_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "chrome/browser/signin/signin_promo.h"
111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "chrome/browser/ui/host_desktop.h"
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "components/content_settings/core/common/content_settings_types.h"
13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "url/gurl.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Browser;
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebContents;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chrome {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sources of requests to show the help tab.
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum HelpSource {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Keyboard accelerators.
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HELP_SOURCE_KEYBOARD,
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Menus (e.g. wrench menu or Chrome OS system menu).
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HELP_SOURCE_MENU,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // WebUI (the "About" page).
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HELP_SOURCE_WEBUI,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowBookmarkManager(Browser* browser);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowBookmarkManagerForNode(Browser* browser, int64 node_id);
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowHistory(Browser* browser);
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowDownloads(Browser* browser);
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ShowExtensions(Browser* browser,
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    const std::string& extension_to_highlight);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowConflicts(Browser* browser);
431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// ShowFeedbackPage() uses |browser| to determine the URL of the current tab.
451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// |browser| should be NULL if there are no currently open browser windows.
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowFeedbackPage(Browser* browser,
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      const std::string& description_template,
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      const std::string& category_tag);
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowHelp(Browser* browser, HelpSource source);
511e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void ShowHelpForProfile(Profile* profile,
521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                        HostDesktopType host_desktop_type,
531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                        HelpSource source);
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ShowPolicy(Browser* browser);
55ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochvoid ShowSlow(Browser* browser);
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Constructs a settings GURL for the specified |sub_page|.
58effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochGURL GetSettingsUrl(const std::string& sub_page);
59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
600529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Returns true if |browser| is a trusted popup window containing a page with
610529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// matching |scheme| (or any trusted popup if |scheme| is empty).
620529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochbool IsTrustedPopupWindowWithScheme(const Browser* browser,
630529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                                    const std::string& scheme);
640529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Various things that open in a settings UI.
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowSettings(Browser* browser);
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowSettingsSubPage(Browser* browser, const std::string& sub_page);
68effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid ShowSettingsSubPageForProfile(Profile* profile,
69effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                                   const std::string& sub_page);
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowContentSettings(Browser* browser,
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         ContentSettingsType content_settings_type);
72effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid ShowSettingsSubPageInTabbedBrowser(Browser* browser,
73effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                                        const std::string& sub_page);
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowClearBrowsingDataDialog(Browser* browser);
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowPasswordManager(Browser* browser);
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowImportDialog(Browser* browser);
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowAboutChrome(Browser* browser);
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ShowSearchEngineSettings(Browser* browser);
792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// If the user is already signed in, shows the "Signin" portion of Settings,
802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// otherwise initiates signin.
81a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)void ShowBrowserSignin(Browser* browser, signin::Source source);
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chrome
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CHROME_BROWSER_UI_CHROME_PAGES_H_
86