|  | // Copyright 2012 The Chromium Authors | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef CHROME_BROWSER_UI_CHROME_PAGES_H_ | 
|  | #define CHROME_BROWSER_UI_CHROME_PAGES_H_ | 
|  |  | 
|  | #include <stdint.h> | 
|  |  | 
|  | #include <string> | 
|  | #include <string_view> | 
|  |  | 
|  | #include "base/values.h" | 
|  | #include "build/branding_buildflags.h" | 
|  | #include "build/build_config.h" | 
|  | #include "chrome/browser/feedback/public/feedback_source.h" | 
|  | #include "chrome/browser/ui/user_education/show_promo_in_page.h" | 
|  | #include "components/content_settings/core/common/content_settings_types.h" | 
|  | #include "components/signin/public/base/signin_buildflags.h" | 
|  | #include "url/gurl.h" | 
|  |  | 
|  | #if !BUILDFLAG(IS_ANDROID) | 
|  | #include "chrome/browser/signin/signin_promo.h" | 
|  | #endif | 
|  |  | 
|  | #if BUILDFLAG(IS_CHROMEOS) | 
|  | #include "chrome/browser/ui/webui/ash/settings/app_management/app_management_uma.h" | 
|  | #endif | 
|  |  | 
|  | namespace apps { | 
|  | enum class LaunchSource; | 
|  | } | 
|  |  | 
|  | namespace safe_browsing { | 
|  | enum class SafeBrowsingSettingReferralMethod; | 
|  | } | 
|  |  | 
|  | namespace signin { | 
|  | enum class ConsentLevel; | 
|  | }  // namespace signin | 
|  |  | 
|  | #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) | 
|  | namespace web_app { | 
|  | enum class AppSettingsPageEntryPoint; | 
|  | }  // namespace web_app | 
|  | #endif | 
|  |  | 
|  | class Browser; | 
|  | class BrowserWindowInterface; | 
|  | class Profile; | 
|  |  | 
|  | namespace chrome { | 
|  |  | 
|  | // Sources of requests to show the help tab. | 
|  | enum class HelpSource { | 
|  | // Keyboard accelerators. | 
|  | kKeyboard, | 
|  |  | 
|  | // Menus (e.g. app menu or Chrome OS system menu). | 
|  | kMenu, | 
|  |  | 
|  | // WebHID help center article. | 
|  | kWebHID, | 
|  |  | 
|  | // WebUI (the "About" page). | 
|  | kWebUI, | 
|  |  | 
|  | #if BUILDFLAG(IS_CHROMEOS) | 
|  | // WebUI (the OS "About" page). | 
|  | kWebUIChromeOS, | 
|  | #endif | 
|  |  | 
|  | // WebUSB help center article. | 
|  | kWebUSD, | 
|  | }; | 
|  |  | 
|  | void ShowBookmarkManager(Browser* browser); | 
|  | void ShowBookmarkManagerForNode(Browser* browser, int64_t node_id); | 
|  | void ShowHistory(Browser* browser, const std::string& host_name); | 
|  | void ShowHistory(Browser* browser); | 
|  | void ShowHistorySubPage(Browser* browser, std::string_view sub_page); | 
|  | void ShowDownloads(Browser* browser); | 
|  | void ShowExtensions(Browser* browser, | 
|  | const std::string& extension_to_highlight = std::string()); | 
|  |  | 
|  | void ShowHelp(Browser* browser, HelpSource source); | 
|  | void ShowHelpForProfile(Profile* profile, HelpSource source); | 
|  | #if BUILDFLAG(GOOGLE_CHROME_BRANDING) | 
|  | void ShowChromeTips(Browser* browser); | 
|  | void ShowChromeWhatsNew(Browser* browser); | 
|  | #endif | 
|  | void LaunchReleaseNotes(Profile* profile, apps::LaunchSource source); | 
|  | void ShowBetaForum(Browser* browser); | 
|  | void ShowSlow(Browser* browser); | 
|  |  | 
|  | // Constructs a settings GURL for the specified |sub_page|. | 
|  | GURL GetSettingsUrl(std::string_view sub_page); | 
|  |  | 
|  | // Constructs a history GURL for the specified `sub_page`. | 
|  | GURL GetHistoryUrl(std::string_view sub_page); | 
|  |  | 
|  | // Returns true if |browser| is a trusted popup window containing a page with | 
|  | // matching |scheme| (or any trusted popup if |scheme| is empty). | 
|  | bool IsTrustedPopupWindowWithScheme(const Browser* browser, | 
|  | const std::string& scheme); | 
|  |  | 
|  | // Various things that open in a settings UI. | 
|  | // NOTE: For Chrome OS settings, use SettingsWindowManager::ShowOSSettings(). | 
|  | void ShowSettings(Browser* browser); | 
|  | void ShowSettingsSubPage(Browser* browser, std::string_view sub_page); | 
|  | void ShowSettingsSubPageForProfile(Profile* profile, std::string_view sub_page); | 
|  | void ShowPageWithPromoForProfile(Profile* profile, | 
|  | ShowPromoInPage::Params promo_params); | 
|  | void ShowContentSettingsExceptions(Browser* browser, | 
|  | ContentSettingsType content_settings_type); | 
|  | void ShowContentSettingsExceptionsForProfile( | 
|  | Profile* profile, | 
|  | ContentSettingsType content_settings_type); | 
|  |  | 
|  | void ShowSiteSettings(Profile* profile, const GURL& url); | 
|  | void ShowSiteSettings(Browser* browser, const GURL& url); | 
|  |  | 
|  | void ShowSiteSettingsFileSystem(Profile* profile, const GURL& url); | 
|  | void ShowSiteSettingsFileSystem(Browser* browser, const GURL& url); | 
|  |  | 
|  | void ShowContentSettings(Browser* browser, | 
|  | ContentSettingsType content_settings_type); | 
|  | void ShowSettingsSubPageInTabbedBrowser(Browser* browser, | 
|  | std::string_view sub_page); | 
|  | void ShowClearBrowsingDataDialog(Browser* browser); | 
|  | void ShowPasswordManager(BrowserWindowInterface* bwi); | 
|  | void ShowPasswordDetailsPage(Browser* browser, | 
|  | const std::string& password_domain_name); | 
|  | void ShowPasswordCheck(Browser* browser); | 
|  | void ShowSafeBrowsingEnhancedProtection(Browser* browser); | 
|  | void ShowSafeBrowsingEnhancedProtectionWithIph( | 
|  | Browser* browser, | 
|  | safe_browsing::SafeBrowsingSettingReferralMethod referral_method); | 
|  | void ShowImportDialog(Browser* browser); | 
|  | void ShowAboutChrome(Browser* browser); | 
|  | void ShowSearchEngineSettings(Browser* browser); | 
|  | void ShowWebStore(Browser* browser, std::string_view utm_source_value); | 
|  | void ShowPrivacySandboxSettings(Browser* browser); | 
|  | void ShowPrivacySandboxAdMeasurementSettings(Browser* browser); | 
|  | void ShowAddresses(BrowserWindowInterface* bwi); | 
|  | void ShowPaymentMethods(BrowserWindowInterface* bwi); | 
|  | void ShowAllSitesSettingsFilteredByRwsOwner( | 
|  | Browser* browser, | 
|  | const std::string& rws_owner_host_name); | 
|  |  | 
|  | // Shows all recent shared tab group activities. | 
|  | void ShowSharedTabGroupActivity(Profile* profile); | 
|  |  | 
|  | // Shows the enterprise management info page in a browser tab. | 
|  | void ShowEnterpriseManagementPageInTabbedBrowser(Browser* browser); | 
|  |  | 
|  | #if BUILDFLAG(IS_CHROMEOS) | 
|  | void ShowAppManagementPage(Profile* profile, | 
|  | const std::string& app_id, | 
|  | ash::settings::AppManagementEntryPoint entry_point); | 
|  |  | 
|  | void ShowGraduationApp(Profile* profile); | 
|  |  | 
|  | // Constructs an OS settings GURL for the specified `sub_page`. | 
|  | GURL GetOSSettingsUrl(std::string_view sub_page); | 
|  |  | 
|  | void ShowPrintManagementApp(Profile* profile); | 
|  |  | 
|  | void ShowConnectivityDiagnosticsApp(Profile* profile); | 
|  |  | 
|  | void ShowScanningApp(Profile* profile); | 
|  |  | 
|  | void ShowDiagnosticsApp(Profile* profile); | 
|  |  | 
|  | void ShowFirmwareUpdatesApp(Profile* profile); | 
|  |  | 
|  | void ShowShortcutCustomizationApp(Profile* profile); | 
|  | // The `action` and `category` will be appended the app URL in the following | 
|  | // format: url?action={action}&category={category}. | 
|  | void ShowShortcutCustomizationApp(Profile* profile, | 
|  | const std::string& action, | 
|  | const std::string& category); | 
|  | #endif | 
|  |  | 
|  | #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) | 
|  | // Show chrome://app-settings/<app-id> page. | 
|  | void ShowWebAppSettings(Browser* browser, | 
|  | const std::string& app_id, | 
|  | web_app::AppSettingsPageEntryPoint entry_point); | 
|  | void ShowWebAppSettings(Profile* profile, | 
|  | const std::string& app_id, | 
|  | web_app::AppSettingsPageEntryPoint entry_point); | 
|  | #endif | 
|  |  | 
|  | void ShowAllComparisonTables(Browser* browser); | 
|  |  | 
|  | }  // namespace chrome | 
|  |  | 
|  | #endif  // CHROME_BROWSER_UI_CHROME_PAGES_H_ |