blob: 20917e7c79eb3a7275d3a8dc564bef85e44a3a58 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/common/webui_url_constants.h"
#include "base/stl_util.h"
#include "base/strings/string_piece.h"
#include "components/nacl/common/buildflags.h"
#include "components/safe_browsing/core/web_ui/constants.h"
#include "extensions/buildflags/buildflags.h"
#if defined(OS_CHROMEOS)
#include "chromeos/constants/chromeos_features.h"
#endif
namespace chrome {
// Please keep this file in the same order as the header.
// Note: Add hosts to |kChromeHostURLs| at the bottom of this file to be listed
// by chrome://chrome-urls (about:about) and the built-in AutocompleteProvider.
const char kChromeUIAboutHost[] = "about";
const char kChromeUIAboutURL[] = "chrome://about/";
const char kChromeUIAccessibilityHost[] = "accessibility";
const char kChromeUIAppIconHost[] = "app-icon";
const char kChromeUIAppIconURL[] = "chrome://app-icon/";
const char kChromeUIAppLauncherPageHost[] = "apps";
const char kChromeUIAppsURL[] = "chrome://apps/";
const char kChromeUIAutofillInternalsHost[] = "autofill-internals";
const char kChromeUIBluetoothInternalsHost[] = "bluetooth-internals";
const char kChromeUIBookmarksHost[] = "bookmarks";
const char kChromeUIBookmarksURL[] = "chrome://bookmarks/";
const char kChromeUICameraHost[] = "camera";
const char kChromeUICertificateViewerHost[] = "view-cert";
const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
const char kChromeUIChromeSigninHost[] = "chrome-signin";
const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
const char kChromeUIChromeURLsHost[] = "chrome-urls";
const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
const char kChromeUIComponentsHost[] = "components";
const char kChromeUIConflictsHost[] = "conflicts";
const char kChromeUIConstrainedHTMLTestURL[] = "chrome://constrained-test/";
const char kChromeUIContentSettingsURL[] = "chrome://settings/content";
const char kChromeUICrashHost[] = "crash";
const char kChromeUICrashesHost[] = "crashes";
const char kChromeUICreditsHost[] = "credits";
const char kChromeUICreditsURL[] = "chrome://credits/";
const char kChromeUIDefaultHost[] = "version";
const char kChromeUIDelayedHangUIHost[] = "delayeduithreadhang";
const char kChromeUIDevToolsBlankPath[] = "blank";
const char kChromeUIDevToolsBundledPath[] = "bundled";
const char kChromeUIDevToolsCustomPath[] = "custom";
const char kChromeUIDevToolsHost[] = "devtools";
const char kChromeUIDevToolsRemotePath[] = "remote";
const char kChromeUIDevToolsURL[] =
"devtools://devtools/bundled/inspector.html";
const char kChromeUIDeviceLogHost[] = "device-log";
const char kChromeUIDevicesHost[] = "devices";
const char kChromeUIDevicesURL[] = "chrome://devices/";
const char kChromeUIDevUiLoaderURL[] = "chrome://dev-ui-loader/";
const char kChromeUIDomainReliabilityInternalsHost[] =
"domain-reliability-internals";
const char kChromeUIDownloadInternalsHost[] = "download-internals";
const char kChromeUIDownloadsHost[] = "downloads";
const char kChromeUIDownloadsURL[] = "chrome://downloads/";
const char kChromeUIDriveInternalsHost[] = "drive-internals";
const char kChromeUIExtensionIconHost[] = "extension-icon";
const char kChromeUIExtensionIconURL[] = "chrome://extension-icon/";
const char kChromeUIExtensionsHost[] = "extensions";
const char kChromeUIExtensionsInternalsHost[] = "extensions-internals";
const char kChromeUIExtensionsURL[] = "chrome://extensions/";
const char kChromeUIFaviconHost[] = "favicon";
const char kChromeUIFaviconURL[] = "chrome://favicon/";
const char kChromeUIFavicon2Host[] = "favicon2";
const char kChromeUIFileiconURL[] = "chrome://fileicon/";
const char kChromeUIFlagsHost[] = "flags";
const char kChromeUIFlagsURL[] = "chrome://flags/";
const char kChromeUIGCMInternalsHost[] = "gcm-internals";
const char kChromeUIHangUIHost[] = "uithreadhang";
const char kChromeUIHelpHost[] = "help";
const char kChromeUIHelpURL[] = "chrome://help/";
const char kChromeUIHistoryHost[] = "history";
const char kChromeUIHistorySyncedTabs[] = "/syncedTabs";
const char kChromeUIHistoryURL[] = "chrome://history/";
const char kChromeUIIdentityInternalsHost[] = "identity-internals";
const char kChromeUIInspectHost[] = "inspect";
const char kChromeUIInspectURL[] = "chrome://inspect/";
const char kChromeUIInterstitialHost[] = "interstitials";
const char kChromeUIInterstitialURL[] = "chrome://interstitials/";
const char kChromeUIInterventionsInternalsHost[] = "interventions-internals";
const char kChromeUIInvalidationsHost[] = "invalidations";
const char kChromeUIKillHost[] = "kill";
const char kChromeUILocalStateHost[] = "local-state";
const char kChromeUIManagementHost[] = "management";
const char kChromeUIManagementURL[] = "chrome://management";
const char kChromeUIMdUserManagerHost[] = "md-user-manager";
const char kChromeUIMdUserManagerUrl[] = "chrome://md-user-manager/";
const char kChromeUIMediaEngagementHost[] = "media-engagement";
const char kChromeUIMediaHistoryHost[] = "media-history";
const char kChromeUIMediaRouterInternalsHost[] = "media-router-internals";
const char kChromeUIMemoryInternalsHost[] = "memory-internals";
const char kChromeUINTPTilesInternalsHost[] = "ntp-tiles-internals";
const char kChromeUINaClHost[] = "nacl";
const char kChromeUINetExportHost[] = "net-export";
const char kChromeUINetInternalsHost[] = "net-internals";
const char kChromeUINetInternalsURL[] = "chrome://net-internals/";
const char kChromeUINewTabHost[] = "newtab";
const char kChromeUINewTabIconHost[] = "ntpicon";
const char kChromeUINewTabPageHost[] = "new-tab-page";
const char kChromeUINewTabPageURL[] = "chrome://new-tab-page";
const char kChromeUINewTabURL[] = "chrome://newtab/";
const char kChromeUINotificationsInternalsHost[] = "notifications-internals";
const char kChromeUIOmniboxHost[] = "omnibox";
const char kChromeUIOmniboxURL[] = "chrome://omnibox/";
const char kChromeUIPasswordManagerInternalsHost[] =
"password-manager-internals";
const char kChromeUIPolicyHost[] = "policy";
const char kChromeUIPolicyURL[] = "chrome://policy/";
const char kChromeUIPredictorsHost[] = "predictors";
const char kChromeUIPrefsInternalsHost[] = "prefs-internals";
const char kChromeUIPrintURL[] = "chrome://print/";
const char kChromeUIQuitHost[] = "quit";
const char kChromeUIQuitURL[] = "chrome://quit/";
const char kChromeUIQuotaInternalsHost[] = "quota-internals";
const char kChromeUIResetPasswordHost[] = "reset-password";
const char kChromeUIResetPasswordURL[] = "chrome://reset-password/";
const char kChromeUIRestartHost[] = "restart";
const char kChromeUIRestartURL[] = "chrome://restart/";
const char kChromeUISafetyPixelbookURL[] = "https://g.co/Pixelbook/legal";
const char kChromeUISafetyPixelSlateURL[] = "https://g.co/PixelSlate/legal";
const char kChromeUISettingsHost[] = "settings";
const char kChromeUISettingsURL[] = "chrome://settings/";
const char kChromeUISignInInternalsHost[] = "signin-internals";
const char kChromeUISigninEmailConfirmationHost[] = "signin-email-confirmation";
const char kChromeUISigninEmailConfirmationURL[] =
"chrome://signin-email-confirmation";
const char kChromeUISigninErrorHost[] = "signin-error";
const char kChromeUISigninErrorURL[] = "chrome://signin-error/";
const char kChromeUISiteDetailsPrefixURL[] =
"chrome://settings/content/siteDetails?site=";
const char kChromeUISiteEngagementHost[] = "site-engagement";
const char kChromeUISuggestionsHost[] = "suggestions";
const char kChromeUISuggestionsURL[] = "chrome://suggestions/";
const char kChromeUISupervisedUserInternalsHost[] = "supervised-user-internals";
const char kChromeUISupervisedUserPassphrasePageHost[] =
"managed-user-passphrase";
const char kChromeUISyncConfirmationHost[] = "sync-confirmation";
const char kChromeUISyncConfirmationURL[] = "chrome://sync-confirmation/";
const char kChromeUISyncFileSystemInternalsHost[] = "syncfs-internals";
const char kChromeUISyncHost[] = "sync";
const char kChromeUISyncInternalsHost[] = "sync-internals";
const char kChromeUISystemInfoHost[] = "system";
const char kChromeUITermsHost[] = "terms";
const char kChromeUITermsURL[] = "chrome://terms/";
const char kChromeUIThemeHost[] = "theme";
const char kChromeUIThemeURL[] = "chrome://theme/";
const char kChromeUIThumbnailHost2[] = "thumb2";
const char kChromeUIThumbnailHost[] = "thumb";
const char kChromeUIThumbnailListHost[] = "thumbnails";
const char kChromeUIThumbnailURL[] = "chrome://thumb/";
const char kChromeUITranslateInternalsHost[] = "translate-internals";
const char kChromeUIUkmHost[] = "ukm";
const char kChromeUIUsbInternalsHost[] = "usb-internals";
const char kChromeUIUserActionsHost[] = "user-actions";
const char kChromeUIVersionHost[] = "version";
const char kChromeUIVersionURL[] = "chrome://version/";
const char kChromeUIWebFooterExperimentHost[] = "web-footer-experiment";
const char kChromeUIWebFooterExperimentURL[] =
"chrome://web-footer-experiment/";
const char kChromeUIWelcomeHost[] = "welcome";
const char kChromeUIWelcomeURL[] = "chrome://welcome/";
#if defined(OS_WIN)
// TODO(crbug.com/1003960): Remove when issue is resolved.
const char kChromeUIWelcomeWin10Host[] = "welcome-win10";
#endif // defined(OS_WIN)
#if defined(OS_ANDROID)
const char kChromeUIExploreSitesInternalsHost[] = "explore-sites-internals";
const char kChromeUIJavaCrashURL[] = "chrome://java-crash/";
const char kChromeUINativeBookmarksURL[] = "chrome-native://bookmarks/";
const char kChromeUINativeExploreURL[] = "chrome-native://explore";
const char kChromeUINativeHistoryURL[] = "chrome-native://history/";
const char kChromeUINativeNewTabURL[] = "chrome-native://newtab/";
const char kChromeUINativePhysicalWebDiagnosticsURL[] =
"chrome-native://physical-web-diagnostics/";
const char kChromeUINativeScheme[] = "chrome-native";
const char kChromeUIOfflineInternalsHost[] = "offline-internals";
const char kChromeUIPhysicalWebDiagnosticsHost[] = "physical-web-diagnostics";
const char kChromeUISnippetsInternalsHost[] = "snippets-internals";
const char kChromeUIWebApksHost[] = "webapks";
#endif
#if defined(OS_CHROMEOS)
// Keep alphabetized.
const char kChromeUIAccountManagerErrorHost[] = "account-manager-error";
const char kChromeUIAccountManagerErrorURL[] = "chrome://account-manager-error";
const char kChromeUIAccountManagerWelcomeHost[] = "account-manager-welcome";
const char kChromeUIAccountManagerWelcomeURL[] =
"chrome://account-manager-welcome";
const char kChromeUIAccountMigrationWelcomeHost[] = "account-migration-welcome";
const char kChromeUIAccountMigrationWelcomeURL[] =
"chrome://account-migration-welcome";
const char kChromeUIActivationMessageHost[] = "activationmessage";
const char kChromeUIAddSupervisionHost[] = "add-supervision";
const char kChromeUIAddSupervisionURL[] = "chrome://add-supervision/";
const char kChromeUIArcGraphicsTracingHost[] = "arc-graphics-tracing";
const char kChromeUIArcGraphicsTracingURL[] = "chrome://arc-graphics-tracing/";
const char kChromeUIArcOverviewTracingHost[] = "arc-overview-tracing";
const char kChromeUIArcOverviewTracingURL[] = "chrome://arc-overview-tracing/";
const char kChromeUIAssistantOptInHost[] = "assistant-optin";
const char kChromeUIAssistantOptInURL[] = "chrome://assistant-optin/";
const char kChromeUIBluetoothPairingHost[] = "bluetooth-pairing";
const char kChromeUIBluetoothPairingURL[] = "chrome://bluetooth-pairing/";
const char kChromeUICellularSetupHost[] = "cellular-setup";
const char kChromeUICellularSetupUrl[] = "chrome://cellular-setup";
const char kChromeUICertificateManagerDialogURL[] =
"chrome://certificate-manager/";
const char kChromeUICertificateManagerHost[] = "certificate-manager";
const char kChromeUIConfirmPasswordChangeHost[] = "confirm-password-change";
const char kChromeUIConfirmPasswordChangeUrl[] =
"chrome://confirm-password-change";
const char kChromeUICrostiniInstallerHost[] = "crostini-installer";
const char kChromeUICrostiniInstallerUrl[] = "chrome://crostini-installer";
const char kChromeUICrostiniUpgraderHost[] = "crostini-upgrader";
const char kChromeUICrostiniUpgraderUrl[] = "chrome://crostini-upgrader";
const char kChromeUICryptohomeHost[] = "cryptohome";
const char kChromeUIDeviceEmulatorHost[] = "device-emulator";
const char kChromeUIDiscoverURL[] = "chrome://oobe/discover";
const char kChromeUIFirstRunHost[] = "first-run";
const char kChromeUIFirstRunURL[] = "chrome://first-run/";
const char kChromeUIIntenetConfigDialogURL[] =
"chrome://internet-config-dialog/";
const char kChromeUIIntenetDetailDialogURL[] =
"chrome://internet-detail-dialog/";
const char kChromeUIInternetConfigDialogHost[] = "internet-config-dialog";
const char kChromeUIInternetDetailDialogHost[] = "internet-detail-dialog";
const char kChromeUILinuxCreditsHost[] = "linux-credits";
const char kChromeUILinuxCreditsURL[] = "chrome://linux-credits/";
const char kChromeUIMachineLearningInternalsHost[] =
"machine-learning-internals";
const char kChromeUIMobileSetupHost[] = "mobilesetup";
const char kChromeUIMobileSetupURL[] = "chrome://mobilesetup/";
const char kChromeUIMultiDeviceSetupHost[] = "multidevice-setup";
const char kChromeUIMultiDeviceSetupUrl[] = "chrome://multidevice-setup";
const char kChromeUINetworkHost[] = "network";
const char kChromeUIOSCreditsHost[] = "os-credits";
const char kChromeUIOSCreditsURL[] = "chrome://os-credits/";
const char kChromeUIOSSettingsHost[] = "os-settings";
const char kChromeUIOSSettingsURL[] = "chrome://os-settings/";
const char kChromeUIOobeHost[] = "oobe";
const char kChromeUIOobeURL[] = "chrome://oobe/";
const char kChromeUIPasswordChangeHost[] = "password-change";
const char kChromeUIPasswordChangeUrl[] = "chrome://password-change";
const char kChromeUIPowerHost[] = "power";
const char kChromeUIScreenlockIconHost[] = "screenlock-icon";
const char kChromeUIScreenlockIconURL[] = "chrome://screenlock-icon/";
const char kChromeUISetTimeHost[] = "set-time";
const char kChromeUISetTimeURL[] = "chrome://set-time/";
const char kChromeUISlowHost[] = "slow";
const char kChromeUISlowTraceHost[] = "slow_trace";
const char kChromeUISlowURL[] = "chrome://slow/";
const char kChromeUISmbShareHost[] = "smb-share-dialog";
const char kChromeUISmbShareURL[] = "chrome://smb-share-dialog/";
const char kChromeUISmbCredentialsHost[] = "smb-credentials-dialog";
const char kChromeUISmbCredentialsURL[] = "chrome://smb-credentials-dialog/";
const char kChromeUISysInternalsHost[] = "sys-internals";
const char kChromeUITerminalHost[] = "terminal";
const char kChromeUITerminalURL[] = "chrome://terminal/";
const char kChromeUIUserImageHost[] = "userimage";
const char kChromeUIUserImageURL[] = "chrome://userimage/";
const char kChromeUIUrgentPasswordExpiryNotificationHost[] =
"urgent-password-expiry-notification";
const char kChromeUIUrgentPasswordExpiryNotificationUrl[] =
"chrome://urgent-password-expiry-notification/";
// Keep alphabetized.
bool IsSystemWebUIHost(base::StringPiece host) {
// Compares host instead of full URL for performance (the strings are
// shorter).
static const char* const kHosts[] = {
kChromeUIAccountManagerErrorHost,
kChromeUIAccountManagerWelcomeHost,
kChromeUIAccountMigrationWelcomeHost,
kChromeUIActivationMessageHost,
kChromeUIAddSupervisionHost,
kChromeUIAssistantOptInHost,
kChromeUIBluetoothPairingHost,
kChromeUICellularSetupHost,
kChromeUICertificateManagerHost,
kChromeUICrostiniInstallerHost,
kChromeUICryptohomeHost,
kChromeUIDeviceEmulatorHost,
kChromeUIFirstRunHost,
kChromeUIInternetConfigDialogHost,
kChromeUIInternetDetailDialogHost,
kChromeUILinuxCreditsHost,
kChromeUIMobileSetupHost,
kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost,
kChromeUIOobeHost,
kChromeUIOSCreditsHost,
kChromeUIOSSettingsHost,
kChromeUIPasswordChangeHost,
kChromeUIPowerHost,
kChromeUISetTimeHost,
kChromeUISmbCredentialsHost,
kChromeUISmbShareHost,
};
for (const char* h : kHosts) {
if (host == h)
return true;
}
return false;
}
#endif // defined(OS_CHROMEOS)
#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
const char kChromeUICastHost[] = "cast";
#endif
#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
const char kChromeUIDiscardsHost[] = "discards";
const char kChromeUIDiscardsURL[] = "chrome://discards/";
const char kChromeUIHatsHost[] = "hats";
const char kChromeUIHatsURL[] = "chrome://hats/";
#endif
#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
const char kChromeUILinuxProxyConfigHost[] = "linux-proxy-config";
#endif
#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
const char kChromeUISandboxHost[] = "sandbox";
#endif
#if defined(OS_WIN) || defined(OS_MACOSX) || \
(defined(OS_LINUX) && !defined(OS_CHROMEOS))
const char kChromeUIBrowserSwitchHost[] = "browser-switch";
const char kChromeUIBrowserSwitchURL[] = "chrome://browser-switch/";
#endif
#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
const char kChromeUITabModalConfirmDialogHost[] = "tab-modal-confirm-dialog";
#endif
#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
const char kChromeUIPrintHost[] = "print";
#endif
#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
const char kChromeUITabStripHost[] = "tab-strip";
const char kChromeUITabStripURL[] = "chrome://tab-strip";
#endif
const char kChromeUIWebRtcLogsHost[] = "webrtc-logs";
// Settings sub pages.
// NOTE: Add sub page paths to |kChromeSettingsSubPages| in
// chrome_autocomplete_provider_client.cc to be listed by the built-in
// AutocompleteProvider.
const char kAddressesSubPage[] = "addresses";
const char kAppearanceSubPage[] = "appearance";
const char kAutofillSubPage[] = "autofill";
const char kClearBrowserDataSubPage[] = "clearBrowserData";
const char kCloudPrintersSubPage[] = "cloudPrinters";
const char kContentSettingsSubPage[] = "content";
const char kCookieSettingsSubPage[] = "cookies";
const char kDeprecatedExtensionsSubPage[] = "extensions";
const char kDownloadsSubPage[] = "downloads";
const char kHandlerSettingsSubPage[] = "handlers";
const char kImportDataSubPage[] = "importData";
const char kLanguageOptionsSubPage[] = "languages";
const char kOnStartupSubPage[] = "onStartup";
const char kPasswordManagerSubPage[] = "passwords";
const char kPaymentsSubPage[] = "payments";
const char kPrintingSettingsSubPage[] = "printing";
const char kPrivacySubPage[] = "privacy";
const char kResetProfileSettingsSubPage[] = "resetProfileSettings";
const char kSearchSubPage[] = "search";
const char kSearchEnginesSubPage[] = "searchEngines";
const char kSignOutSubPage[] = "signOut";
const char kSyncSetupSubPage[] = "syncSetup";
const char kTriggeredResetProfileSettingsSubPage[] =
"triggeredResetProfileSettings";
#if defined(OS_CHROMEOS)
// NOTE: Add new OS settings to IsOSSettingsSubPage() below.
const char kAccessibilitySubPage[] = "accessibility";
const char kAccountManagerSubPage[] = "accountManager";
const char kAccountSubPage[] = "accounts";
const char kAndroidAppsDetailsSubPage[] = "androidAppsDetails";
const char kAndroidAppsDetailsSubPageInBrowserSettings[] =
"androidApps/details";
const char kAppManagementDetailSubPage[] = "app-management/detail";
const char kAssistantSubPage[] = "googleAssistant";
const char kBluetoothSubPage[] = "bluetoothDevices";
const char kChangePictureSubPage[] = "changePicture";
// 'multidevice/features' is a child of the 'multidevice' route
const char kConnectedDevicesSubPage[] = "multidevice/features";
const char kCrostiniSharedPathsSubPage[] = "crostini/sharedPaths";
const char kCrostiniSharedUsbDevicesSubPage[] = "crostini/sharedUsbDevices";
const char kCrostiniExportImportSubPage[] = "crostini/exportImport";
const char kDateTimeSubPage[] = "dateTime";
const char kDisplaySubPage[] = "display";
const char kExternalStorageSubPage[] = "storage/externalStoragePreferences";
const char kHelpSubPage[] = "help";
const char kInternetSubPage[] = "internet";
const char kKerberosAccountsSubPage[] = "kerberosAccounts";
const char kKeyboardOverlaySubPage[] = "keyboard-overlay";
const char kLanguageSubPage[] = "languages/details";
const char kLockScreenSubPage[] = "lockScreen";
const char kManageAccessibilitySubPage[] = "manageAccessibility";
const char kManageAccessibilityTtsSubPage[] = "manageAccessibility/tts";
const char kMultideviceSubPage[] = "multidevice";
const char kNativePrintingSettingsSubPage[] = "cupsPrinters";
const char kNetworkDetailSubPage[] = "networkDetail";
const char kNetworksSubPage[] = "networks";
const char kPluginVmDetailsSubPage[] = "pluginVm/details";
const char kPluginVmSharedPathsSubPage[] = "pluginVm/sharedPaths";
const char kPointerOverlaySubPage[] = "pointer-overlay";
const char kPowerSubPage[] = "power";
const char kResetSubPage[] = "reset";
const char kSmartLockSettingsSubPage[] = "multidevice/features/smartLock";
const char kSmbSharesSubPage[] = "smbShares";
const char kStorageSubPage[] = "storage";
const char kStylusSubPage[] = "stylus";
const char kSwitchAccessSubPage[] = "manageAccessibility/switchAccess";
// Tether is a child of the 'networks' route.
const char kTetherSettingsSubPage[] = "networks?type=Tether";
const char kVPNSettingsSubPage[] = "networks?type=VPN";
const char kWiFiSettingsSubPage[] = "networks?type=WiFi";
// Any changes here need to be kept in sync with chrome_new_window_client.cc
bool IsOSSettingsSubPage(const std::string& sub_page) {
static const char* const kSubPages[] = {
kAccessibilitySubPage,
kAccountManagerSubPage,
kAccountSubPage,
kAndroidAppsDetailsSubPage,
kAndroidAppsDetailsSubPageInBrowserSettings,
kAppManagementDetailSubPage,
kAssistantSubPage,
kBluetoothSubPage,
kChangePictureSubPage,
kConnectedDevicesSubPage,
kCrostiniSharedPathsSubPage,
kCrostiniSharedUsbDevicesSubPage,
kDateTimeSubPage,
kDisplaySubPage,
kExternalStorageSubPage,
kHelpSubPage,
kInternetSubPage,
kKerberosAccountsSubPage,
kKeyboardOverlaySubPage,
// language is both an OS and browser sub page, but prefer the OS version
kLanguageSubPage,
kLockScreenSubPage,
kManageAccessibilitySubPage,
kManageAccessibilityTtsSubPage,
kMultideviceSubPage,
kNativePrintingSettingsSubPage,
kNetworkDetailSubPage,
kNetworksSubPage,
kPointerOverlaySubPage,
kPowerSubPage,
// reset is both an OS and browser sub page, but prefer the OS version
kResetSubPage,
kSmartLockSettingsSubPage,
kSmbSharesSubPage,
kStorageSubPage,
kStylusSubPage,
kSwitchAccessSubPage,
kVPNSettingsSubPage,
kWiFiSettingsSubPage,
};
// Sub-pages may have query parameters, e.g. networkDetail?guid=123456.
std::string sub_page_without_query = sub_page;
std::string::size_type index = sub_page.find('?');
if (index != std::string::npos)
sub_page_without_query.resize(index);
// SplitSettingsSync doesn't use the same sync subpage as browser.
if (!chromeos::features::IsSplitSettingsSyncEnabled() &&
sub_page_without_query == kSyncSetupSubPage) {
return true;
}
for (const char* p : kSubPages) {
if (sub_page_without_query == p)
return true;
}
return false;
}
#else
const char kCreateProfileSubPage[] = "createProfile";
const char kManageProfileSubPage[] = "manageProfile";
const char kPeopleSubPage[] = "people";
#endif // defined(OS_CHROMEOS)
#if defined(OS_WIN)
const char kCleanupSubPage[] = "cleanup";
#endif // defined(OS_WIN)
// Extension sub pages.
const char kExtensionConfigureCommandsSubPage[] = "configureCommands";
// Add hosts here to be included in chrome://chrome-urls (about:about).
// These hosts will also be suggested by BuiltinProvider.
const char* const kChromeHostURLs[] = {
kChromeUIAboutHost,
kChromeUIAccessibilityHost,
kChromeUIAutofillInternalsHost,
kChromeUIBluetoothInternalsHost,
kChromeUIChromeURLsHost,
kChromeUIComponentsHost,
kChromeUICrashesHost,
kChromeUICreditsHost,
#if defined(OS_CHROMEOS) && !defined(OFFICIAL_BUILD)
kChromeUIDeviceEmulatorHost,
#endif
kChromeUIDeviceLogHost,
kChromeUIDownloadInternalsHost,
kChromeUIFlagsHost,
kChromeUIGCMInternalsHost,
kChromeUIHistoryHost,
kChromeUIInterstitialHost,
kChromeUIInterventionsInternalsHost,
kChromeUIInvalidationsHost,
kChromeUILocalStateHost,
#if !defined(OS_ANDROID)
kChromeUIManagementHost,
#endif
kChromeUIMediaEngagementHost,
kChromeUINetExportHost,
kChromeUINetInternalsHost,
kChromeUINewTabHost,
kChromeUIOmniboxHost,
kChromeUIPasswordManagerInternalsHost,
kChromeUIPolicyHost,
kChromeUIPredictorsHost,
kChromeUIPrefsInternalsHost,
kChromeUIQuotaInternalsHost,
kChromeUISignInInternalsHost,
kChromeUISiteEngagementHost,
kChromeUINTPTilesInternalsHost,
safe_browsing::kChromeUISafeBrowsingHost,
kChromeUISuggestionsHost,
kChromeUISupervisedUserInternalsHost,
kChromeUISyncInternalsHost,
#if !defined(OS_ANDROID)
kChromeUITermsHost,
kChromeUIThumbnailListHost,
#endif
kChromeUITranslateInternalsHost,
kChromeUIUsbInternalsHost,
kChromeUIUserActionsHost,
kChromeUIVersionHost,
content::kChromeUIAppCacheInternalsHost,
content::kChromeUIBlobInternalsHost,
content::kChromeUIDinoHost,
content::kChromeUIGpuHost,
content::kChromeUIHistogramHost,
content::kChromeUIIndexedDBInternalsHost,
content::kChromeUIMediaInternalsHost,
content::kChromeUINetworkErrorHost,
content::kChromeUINetworkErrorsListingHost,
content::kChromeUIProcessInternalsHost,
content::kChromeUIServiceWorkerInternalsHost,
#if !defined(OS_ANDROID)
content::kChromeUITracingHost,
#endif
content::kChromeUIWebRTCInternalsHost,
#if !defined(OS_ANDROID)
#if !defined(OS_CHROMEOS)
kChromeUIAppLauncherPageHost,
#endif
kChromeUIBookmarksHost,
kChromeUIDownloadsHost,
kChromeUIHelpHost,
kChromeUIInspectHost,
kChromeUINewTabPageHost,
kChromeUISettingsHost,
kChromeUISystemInfoHost,
#endif
#if defined(OS_ANDROID)
kChromeUIExploreSitesInternalsHost,
kChromeUIOfflineInternalsHost,
kChromeUISnippetsInternalsHost,
kChromeUIWebApksHost,
#endif
#if defined(OS_CHROMEOS)
kChromeUICertificateManagerHost,
kChromeUICryptohomeHost,
kChromeUIDriveInternalsHost,
kChromeUIFirstRunHost,
kChromeUILinuxCreditsHost,
kChromeUIMachineLearningInternalsHost,
kChromeUINetworkHost,
kChromeUIOobeHost,
kChromeUIOSCreditsHost,
kChromeUIOSSettingsHost,
kChromeUIPowerHost,
kChromeUIInternetConfigDialogHost,
kChromeUIInternetDetailDialogHost,
kChromeUIAssistantOptInHost,
#endif
#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
kChromeUIDiscardsHost,
#endif
#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
kChromeUILinuxProxyConfigHost,
#endif
#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
kChromeUISandboxHost,
#endif
#if defined(OS_WIN)
kChromeUIConflictsHost,
#endif
#if BUILDFLAG(ENABLE_NACL)
kChromeUINaClHost,
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
kChromeUIExtensionsHost,
#endif
#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
kChromeUIPrintHost,
#endif
#if BUILDFLAG(ENABLE_SERVICE_DISCOVERY)
kChromeUIDevicesHost,
#endif
kChromeUIWebRtcLogsHost,
};
const size_t kNumberOfChromeHostURLs = base::size(kChromeHostURLs);
const char* const kChromeDebugURLs[] = {
content::kChromeUIBadCastCrashURL,
content::kChromeUIBrowserCrashURL,
content::kChromeUICrashURL,
content::kChromeUIDumpURL,
content::kChromeUIKillURL,
content::kChromeUIHangURL,
content::kChromeUIShorthangURL,
content::kChromeUIGpuCleanURL,
content::kChromeUIGpuCrashURL,
content::kChromeUIGpuHangURL,
content::kChromeUIMemoryExhaustURL,
content::kChromeUIMemoryPressureCriticalURL,
content::kChromeUIMemoryPressureModerateURL,
content::kChromeUIPpapiFlashCrashURL,
content::kChromeUIPpapiFlashHangURL,
#if defined(OS_WIN)
content::kChromeUIBrowserHeapCorruptionURL,
content::kChromeUIHeapCorruptionCrashURL,
#endif
#if defined(OS_ANDROID)
content::kChromeUIGpuJavaCrashURL,
kChromeUIJavaCrashURL,
#endif
kChromeUIQuitURL,
kChromeUIRestartURL};
const size_t kNumberOfChromeDebugURLs = base::size(kChromeDebugURLs);
} // namespace chrome