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#include "chrome/common/url_constants.h"
6
7#include <algorithm>
8
9#include "base/basictypes.h"
10#include "content/public/common/url_constants.h"
11#include "url/url_util.h"
12
13namespace chrome {
14
15#if defined(OS_CHROMEOS)
16const char kCrosScheme[] = "cros";
17const char kExternalFileScheme[] = "externalfile";
18#endif
19
20// Add Chrome UI URLs as necessary, in alphabetical order.
21// Be sure to add the corresponding kChromeUI*Host constant below.
22// This is a WebUI page that lists other WebUI pages.
23const char kChromeUIAboutURL[] = "chrome://about/";
24const char kChromeUIAppsURL[] = "chrome://apps/";
25const char kChromeUIAppListStartPageURL[] = "chrome://app-list/";
26const char kChromeUIBookmarksURL[] = "chrome://bookmarks/";
27const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
28const char kChromeUICertificateViewerDialogURL[] = "chrome://view-cert-dialog/";
29const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
30const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
31const char kChromeUICloudPrintResourcesURL[] = "chrome://cloudprintresources/";
32const char kChromeUIComponentsURL[] = "chrome://components/";
33const char kChromeUIConflictsURL[] = "chrome://conflicts/";
34const char kChromeUIConstrainedHTMLTestURL[] = "chrome://constrained-test/";
35const char kChromeUIContextualSearchPromoURL[] =
36    "chrome://contextual-search-promo";
37const char kChromeUICrashesURL[] = "chrome://crashes/";
38const char kChromeUICreditsURL[] = "chrome://credits/";
39const char kChromeUIDevicesURL[] = "chrome://devices/";
40const char kChromeUIDevToolsURL[] =
41    "chrome-devtools://devtools/bundled/devtools.html";
42const char kChromeUIDomainReliabilityInternalsURL[] =
43    "chrome://domain-reliability-internals/";
44const char kChromeUIDownloadsURL[] = "chrome://downloads/";
45const char kChromeUIEditSearchEngineDialogURL[] = "chrome://editsearchengine/";
46const char kChromeUIExtensionIconURL[] = "chrome://extension-icon/";
47const char kChromeUIExtensionInfoURL[] = "chrome://extension-info/";
48const char kChromeUIExtensionsFrameURL[] = "chrome://extensions-frame/";
49const char kChromeUIExtensionsURL[] = "chrome://extensions/";
50const char kChromeUIFaviconURL[] = "chrome://favicon/";
51const char kChromeUIFeedbackURL[] = "chrome://feedback/";
52const char kChromeUIFlagsURL[] = "chrome://flags/";
53const char kChromeUIFlashURL[] = "chrome://flash/";
54const char kChromeUIGCMInternalsURL[] = "chrome://gcm-internals/";
55const char kChromeUIHelpFrameURL[] = "chrome://help-frame/";
56const char kChromeUIHistoryURL[] = "chrome://history/";
57const char kChromeUIHistoryFrameURL[] = "chrome://history-frame/";
58const char kChromeUIIdentityInternalsURL[] = "chrome://identity-internals/";
59const char kChromeUIInspectURL[] = "chrome://inspect/";
60const char kChromeUIInstantURL[] = "chrome://instant/";
61const char kChromeUIInterstitialURL[] = "chrome://interstitials/";
62const char kChromeUIInvalidationsURL[] = "chrome://invalidations/";
63const char kChromeUIIPCURL[] = "chrome://ipc/";
64const char kChromeUIMemoryRedirectURL[] = "chrome://memory-redirect/";
65const char kChromeUIMemoryURL[] = "chrome://memory/";
66const char kChromeUIMetroFlowURL[] = "chrome://make-metro/";
67const char kChromeUINaClURL[] = "chrome://nacl/";
68const char kChromeUINetInternalsURL[] = "chrome://net-internals/";
69const char kChromeUINewProfile[] = "chrome://newprofile/";
70const char kChromeUINewTabURL[] = "chrome://newtab/";
71const char kChromeUIOmniboxURL[] = "chrome://omnibox/";
72const char kChromeUIPluginsURL[] = "chrome://plugins/";
73const char kChromeUIPolicyURL[] = "chrome://policy/";
74const char kChromeUIProfileSigninConfirmationURL[] =
75    "chrome://profile-signin-confirmation/";
76const char kChromeUIUserManagerURL[] = "chrome://user-manager/";
77const char kChromeUIPrintURL[] = "chrome://print/";
78const char kChromeUIQuitURL[] = "chrome://quit/";
79const char kChromeUIRestartURL[] = "chrome://restart/";
80const char kChromeUISettingsURL[] = "chrome://settings/";
81const char kChromeUISettingsFrameURL[] = "chrome://settings-frame/";
82const char kChromeUISSLClientCertificateSelectorURL[] = "chrome://select-cert/";
83const char kChromeUISuggestions[] = "chrome://suggestions/";
84const char kChromeUISuggestionsInternalsURL[] =
85    "chrome://suggestions-internals/";
86const char kChromeUISupervisedUserPassphrasePageURL[] =
87    "chrome://managed-user-passphrase/";
88const char kChromeUITermsURL[] = "chrome://terms/";
89const char kChromeUIThemeURL[] = "chrome://theme/";
90const char kChromeUIThumbnailURL[] = "chrome://thumb/";
91const char kChromeUIThumbnailListURL[] = "chrome://thumbnails/";
92const char kChromeUIUberURL[] = "chrome://chrome/";
93const char kChromeUIUberFrameURL[] = "chrome://uber-frame/";
94const char kChromeUIUserActionsURL[] = "chrome://user-actions/";
95const char kChromeUIVersionURL[] = "chrome://version/";
96const char kChromeUIVoiceSearchURL[] = "chrome://voicesearch/";
97
98#if defined(OS_ANDROID)
99const char kChromeUINativeNewTabURL[] = "chrome-native://newtab/";
100const char kChromeUINativeBookmarksURL[] = "chrome-native://bookmarks/";
101const char kChromeUINativeRecentTabsURL[] = "chrome-native://recent-tabs/";
102const char kChromeUIWelcomeURL[] = "chrome://welcome/";
103#endif
104
105#if defined(OS_CHROMEOS)
106const char kChromeUIActivationMessage[] = "chrome://activationmessage/";
107const char kChromeUIBluetoothPairingURL[] = "chrome://bluetooth-pairing/";
108const char kChromeUICertificateManagerDialogURL[] =
109    "chrome://certificate-manager/";
110const char kChromeUIChargerReplacementURL[] = "chrome://charger-replacement/";
111const char kChromeUIChooseMobileNetworkURL[] =
112    "chrome://choose-mobile-network/";
113const char kChromeUIDiscardsURL[] = "chrome://discards/";
114const char kChromeUIFirstRunURL[] = "chrome://first-run/";
115const char kChromeUIIdleLogoutDialogURL[] = "chrome://idle-logout/";
116const char kChromeUIImageBurnerURL[] = "chrome://imageburner/";
117const char kChromeUIKeyboardOverlayURL[] = "chrome://keyboardoverlay/";
118const char kChromeUILockScreenURL[] = "chrome://lock/";
119const char kChromeUIMediaplayerURL[] = "chrome://mediaplayer/";
120const char kChromeUIMobileSetupURL[] = "chrome://mobilesetup/";
121const char kChromeUINfcDebugURL[] = "chrome://nfc-debug/";
122const char kChromeUIOobeURL[] = "chrome://oobe/";
123const char kChromeUIOSCreditsURL[] = "chrome://os-credits/";
124const char kChromeUIProxySettingsURL[] = "chrome://proxy-settings/";
125const char kChromeUIScreenlockIconURL[] = "chrome://screenlock-icon/";
126const char kChromeUISetTimeURL[] = "chrome://set-time/";
127const char kChromeUISimUnlockURL[] = "chrome://sim-unlock/";
128const char kChromeUISlideshowURL[] = "chrome://slideshow/";
129const char kChromeUISlowURL[] = "chrome://slow/";
130const char kChromeUISystemInfoURL[] = "chrome://system/";
131const char kChromeUITermsOemURL[] = "chrome://terms/oem";
132const char kChromeUIUserImageURL[] = "chrome://userimage/";
133#endif
134
135#if defined(USE_AURA)
136const char kChromeUIGestureConfigURL[] = "chrome://gesture/";
137const char kChromeUIGestureConfigHost[] = "gesture";
138const char kChromeUISalsaURL[] = "chrome://salsa/";
139const char kChromeUISalsaHost[] = "salsa";
140#endif
141
142#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
143const char kChromeUITabModalConfirmDialogURL[] =
144    "chrome://tab-modal-confirm-dialog/";
145#endif
146
147#if defined(ENABLE_WEBRTC)
148const char kChromeUIWebRtcLogsURL[] = "chrome://webrtc-logs/";
149#endif
150
151// Add Chrome UI hosts here, in alphabetical order.
152// Add hosts to kChromePaths in browser_about_handler.cc to be listed by
153// chrome://chrome-urls (about:about) and the built-in AutocompleteProvider.
154const char kChromeUIAboutHost[] = "about";
155const char kChromeUIBlankHost[] = "blank";
156const char kChromeUIAppLauncherPageHost[] = "apps";
157const char kChromeUIAppListStartPageHost[] = "app-list";
158const char kChromeUIBookmarksHost[] = "bookmarks";
159const char kChromeUICacheHost[] = "cache";
160const char kChromeUICertificateViewerHost[] = "view-cert";
161const char kChromeUICertificateViewerDialogHost[] = "view-cert-dialog";
162const char kChromeUIChromeSigninHost[] = "chrome-signin";
163const char kChromeUIChromeURLsHost[] = "chrome-urls";
164const char kChromeUICloudPrintResourcesHost[] = "cloudprintresources";
165const char kChromeUICloudPrintSetupHost[] = "cloudprintsetup";
166const char kChromeUIConflictsHost[] = "conflicts";
167const char kChromeUIConstrainedHTMLTestHost[] = "constrained-test";
168const char kChromeUIContextualSearchPromoHost[] = "contextual-search-promo";
169const char kChromeUICrashesHost[] = "crashes";
170const char kChromeUICrashHost[] = "crash";
171const char kChromeUICreditsHost[] = "credits";
172const char kChromeUIDefaultHost[] = "version";
173const char kChromeUIDevicesHost[] = "devices";
174const char kChromeUIDevToolsHost[] = "devtools";
175const char kChromeUIDevToolsBundledPath[] = "bundled";
176const char kChromeUIDevToolsRemotePath[] = "remote";
177const char kChromeUIDNSHost[] = "dns";
178const char kChromeUIDomainReliabilityInternalsHost[] =
179    "domain-reliability-internals";
180const char kChromeUIDownloadsHost[] = "downloads";
181const char kChromeUIDriveInternalsHost[] = "drive-internals";
182const char kChromeUIEditSearchEngineDialogHost[] = "editsearchengine";
183const char kChromeUIExtensionIconHost[] = "extension-icon";
184const char kChromeUIExtensionInfoHost[] = "extension-info";
185const char kChromeUIExtensionsFrameHost[] = "extensions-frame";
186const char kChromeUIExtensionsHost[] = "extensions";
187const char kChromeUIFaviconHost[] = "favicon";
188const char kChromeUIFeedbackHost[] = "feedback";
189const char kChromeUIFlagsHost[] = "flags";
190const char kChromeUIFlashHost[] = "flash";
191const char kChromeUIGCMInternalsHost[] = "gcm-internals";
192const char kChromeUIHangHost[] = "hang";
193const char kChromeUIHelpFrameHost[] = "help-frame";
194const char kChromeUIHelpHost[] = "help";
195const char kChromeUIHistoryHost[] = "history";
196const char kChromeUIHistoryFrameHost[] = "history-frame";
197const char kChromeUIIdentityInternalsHost[] = "identity-internals";
198const char kChromeUIInspectHost[] = "inspect";
199const char kChromeUIInstantHost[] = "instant";
200const char kChromeUIInterstitialHost[] = "interstitials";
201const char kChromeUIInvalidationsHost[] = "invalidations";
202const char kChromeUIIPCHost[] = "ipc";
203const char kChromeUIKillHost[] = "kill";
204const char kChromeUIMemoryHost[] = "memory";
205const char kChromeUIMemoryInternalsHost[] = "memory-internals";
206const char kChromeUIMemoryRedirectHost[] = "memory-redirect";
207const char kChromeUIMetroFlowHost[] = "make-metro";
208const char kChromeUINaClHost[] = "nacl";
209const char kChromeUINetExportHost[] = "net-export";
210const char kChromeUINetInternalsHost[] = "net-internals";
211const char kChromeUINewTabHost[] = "newtab";
212const char kChromeUIOmniboxHost[] = "omnibox";
213const char kChromeUIPasswordManagerInternalsHost[] =
214    "password-manager-internals";
215const char kChromeUIPluginsHost[] = "plugins";
216const char kChromeUIComponentsHost[] = "components";
217const char kChromeUIPolicyHost[] = "policy";
218const char kChromeUIProfileSigninConfirmationHost[] =
219    "profile-signin-confirmation";
220const char kChromeUIUserManagerHost[] = "user-manager";
221const char kChromeUIPredictorsHost[] = "predictors";
222const char kChromeUIProfilerHost[] = "profiler";
223const char kChromeUIQuotaInternalsHost[] = "quota-internals";
224const char kChromeUIQuitHost[] = "quit";
225const char kChromeUIRestartHost[] = "restart";
226const char kChromeUISettingsHost[] = "settings";
227const char kChromeUISettingsFrameHost[] = "settings-frame";
228const char kChromeUIShorthangHost[] = "shorthang";
229const char kChromeUISignInInternalsHost[] = "signin-internals";
230const char kChromeUISSLClientCertificateSelectorHost[] = "select-cert";
231const char kChromeUIStatsHost[] = "stats";
232const char kChromeUISuggestionsHost[] = "suggestions";
233const char kChromeUISuggestionsInternalsHost[] = "suggestions-internals";
234const char kChromeUISupervisedUserPassphrasePageHost[] =
235    "managed-user-passphrase";
236const char kChromeUISyncHost[] = "sync";
237const char kChromeUISyncFileSystemInternalsHost[] = "syncfs-internals";
238const char kChromeUISyncInternalsHost[] = "sync-internals";
239const char kChromeUISyncResourcesHost[] = "syncresources";
240const char kChromeUISystemInfoHost[] = "system";
241const char kChromeUITaskManagerHost[] = "tasks";
242const char kChromeUITermsHost[] = "terms";
243const char kChromeUIThemeHost[] = "theme";
244const char kChromeUIThumbnailHost[] = "thumb";
245const char kChromeUIThumbnailHost2[] = "thumb2";
246const char kChromeUIThumbnailListHost[] = "thumbnails";
247const char kChromeUITouchIconHost[] = "touch-icon";
248const char kChromeUITranslateInternalsHost[] = "translate-internals";
249const char kChromeUIUberFrameHost[] = "uber-frame";
250const char kChromeUIUberHost[] = "chrome";
251const char kChromeUIUserActionsHost[] = "user-actions";
252const char kChromeUIVersionHost[] = "version";
253const char kChromeUIVoiceSearchHost[] = "voicesearch";
254const char kChromeUIWorkersHost[] = "workers";
255
256const char kChromeUIScreenshotPath[] = "screenshots";
257const char kChromeUIThemePath[] = "theme";
258
259#if defined(ENABLE_FULL_PRINTING)
260const char kChromeUIPrintHost[] = "print";
261#endif  // ENABLE_FULL_PRINTING
262
263#if defined(OS_ANDROID)
264const char kChromeUIWelcomeHost[] = "welcome";
265#endif
266
267#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
268const char kChromeUILinuxProxyConfigHost[] = "linux-proxy-config";
269const char kChromeUISandboxHost[] = "sandbox";
270#endif
271
272#if defined(OS_CHROMEOS)
273const char kChromeUIActivationMessageHost[] = "activationmessage";
274const char kChromeUIAppLaunchHost[] = "app-launch";
275const char kChromeUIBluetoothPairingHost[] = "bluetooth-pairing";
276const char kChromeUICertificateManagerHost[] = "certificate-manager";
277const char kChromeUIChargerReplacementHost[] = "charger-replacement";
278const char kChromeUIChooseMobileNetworkHost[] = "choose-mobile-network";
279const char kChromeUICryptohomeHost[] = "cryptohome";
280const char kChromeUIDiscardsHost[] = "discards";
281const char kChromeUIFirstRunHost[] = "first-run";
282const char kChromeUIIdleLogoutDialogHost[] = "idle-logout";
283const char kChromeUIImageBurnerHost[] = "imageburner";
284const char kChromeUIKeyboardOverlayHost[] = "keyboardoverlay";
285const char kChromeUILockScreenHost[] = "lock";
286const char kChromeUILoginContainerHost[] = "login-container";
287const char kChromeUILoginHost[] = "login";
288const char kChromeUIMediaplayerHost[] = "mediaplayer";
289const char kChromeUIMobileSetupHost[] = "mobilesetup";
290const char kChromeUINfcDebugHost[] = "nfc-debug";
291const char kChromeUINetworkHost[] = "network";
292const char kChromeUIOobeHost[] = "oobe";
293const char kChromeUIOSCreditsHost[] = "os-credits";
294const char kChromeUIPowerHost[] = "power";
295const char kChromeUIProvidedFileSystemsHost[] = "provided-file-systems";
296const char kChromeUIProxySettingsHost[] = "proxy-settings";
297const char kChromeUIRotateHost[] = "rotate";
298const char kChromeUIScreenlockIconHost[] = "screenlock-icon";
299const char kChromeUISetTimeHost[] = "set-time";
300const char kChromeUISimUnlockHost[] = "sim-unlock";
301const char kChromeUISlideshowHost[] = "slideshow";
302const char kChromeUISlowHost[] = "slow";
303const char kChromeUISlowTraceHost[] = "slow_trace";
304const char kChromeUIUserImageHost[] = "userimage";
305
306const char kChromeUIMenu[] = "menu";
307const char kChromeUINetworkMenu[] = "network-menu";
308const char kChromeUIWrenchMenu[] = "wrench-menu";
309
310const char kEULAPathFormat[] = "/usr/share/chromeos-assets/eula/%s/eula.html";
311const char kOemEulaURLPath[] = "oem";
312const char kOnlineEulaURLPath[] =
313    "https://www.google.com/intl/%s/chrome/eula_text.html";
314#endif
315
316#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
317const char kChromeUITabModalConfirmDialogHost[] = "tab-modal-confirm-dialog";
318#endif
319
320#if defined(ENABLE_WEBRTC)
321const char kChromeUIWebRtcLogsHost[] = "webrtc-logs";
322#endif
323
324// Option sub pages.
325// Add sub page paths to kChromeSettingsSubPages in builtin_provider.cc to be
326// listed by the built-in AutocompleteProvider.
327const char kAutofillSubPage[] = "autofill";
328const char kClearBrowserDataSubPage[] = "clearBrowserData";
329const char kContentSettingsExceptionsSubPage[] = "contentExceptions";
330const char kContentSettingsSubPage[] = "content";
331const char kCreateProfileSubPage[] = "createProfile";
332const char kExtensionsSubPage[] = "extensions";
333const char kHandlerSettingsSubPage[] = "handlers";
334const char kImportDataSubPage[] = "importData";
335const char kLanguageOptionsSubPage[] = "languages";
336const char kManageProfileSubPage[] = "manageProfile";
337const char kPasswordManagerSubPage[] = "passwords";
338const char kResetProfileSettingsSubPage[] = "resetProfileSettings";
339const char kSearchEnginesSubPage[] = "searchEngines";
340const char kSearchSubPage[] = "search";
341const char kSearchUsersSubPage[] = "search#Users";
342const char kSupervisedUserSettingsSubPage[] = "managedUser";
343const char kSyncSetupSubPage[] = "syncSetup";
344#if defined(OS_CHROMEOS)
345const char kInternetOptionsSubPage[] = "internet";
346const char kBluetoothAddDeviceSubPage[] = "bluetooth";
347const char kChangeProfilePictureSubPage[] = "changePicture";
348#endif
349
350// Extension sub pages.
351const char kExtensionConfigureCommandsSubPage[] = "configureCommands";
352
353const char kExtensionInvalidRequestURL[] = "chrome-extension://invalid/";
354const char kExtensionResourceInvalidRequestURL[] =
355    "chrome-extension-resource://invalid/";
356
357const char kSyncGoogleDashboardURL[] =
358    "https://www.google.com/settings/chrome/sync/";
359
360const char kAutoPasswordGenerationLearnMoreURL[] =
361    "https://support.google.com/chrome/?p=ui_generate_password";
362
363const char kPasswordManagerLearnMoreURL[] =
364#if defined(OS_CHROMEOS)
365    "https://support.google.com/chromeos/?p=settings_password";
366#else
367    "https://support.google.com/chrome/?p=settings_password";
368#endif
369
370const char kPasswordManagerAccountDashboardURL[] =
371    "https://passwords.google.com/settings/passwords";
372
373const char kExtensionControlledSettingLearnMoreURL[] =
374    "https://support.google.com/chrome/?p=ui_settings_api_extension";
375
376const char kChromeHelpViaKeyboardURL[] =
377#if defined(OS_CHROMEOS)
378#if defined(OFFICIAL_BUILD)
379    "chrome-extension://honijodknafkokifofgiaalefdiedpko/main.html";
380#else
381    "https://support.google.com/chromeos/?p=help&ctx=keyboard";
382#endif  // defined(OFFICIAL_BUILD
383#else
384    "https://support.google.com/chrome/?p=help&ctx=keyboard";
385#endif  // defined(OS_CHROMEOS)
386
387const char kChromeHelpViaMenuURL[] =
388#if defined(OS_CHROMEOS)
389#if defined(OFFICIAL_BUILD)
390    "chrome-extension://honijodknafkokifofgiaalefdiedpko/main.html";
391#else
392    "https://support.google.com/chromeos/?p=help&ctx=menu";
393#endif  // defined(OFFICIAL_BUILD
394#else
395    "https://support.google.com/chrome/?p=help&ctx=menu";
396#endif  // defined(OS_CHROMEOS)
397
398const char kChromeHelpViaWebUIURL[] =
399#if defined(OS_CHROMEOS)
400#if defined(OFFICIAL_BUILD)
401    "chrome-extension://honijodknafkokifofgiaalefdiedpko/main.html";
402#else
403    "https://support.google.com/chromeos/?p=help&ctx=settings";
404#endif  // defined(OFFICIAL_BUILD
405#else
406    "https://support.google.com/chrome/?p=help&ctx=settings";
407#endif  // defined(OS_CHROMEOS)
408
409#if defined(OS_CHROMEOS)
410const char kChromeAccessibilityHelpURL[] =
411    "https://support.google.com/chromeos/?p=accessibility_menu";
412const char kChromeAccessibilitySettingsURL[] =
413    "/chromevox/background/options.html";
414#endif  // defined(OS_CHROMEOS)
415
416#if defined(ENABLE_ONE_CLICK_SIGNIN)
417const char kChromeSyncLearnMoreURL[] =
418    "http://support.google.com/chrome/bin/answer.py?answer=165139";
419
420const char kChromeSyncMergeTroubleshootingURL[] =
421    "https://support.google.com/chrome/answer/1181420#merge";
422#endif  // defined(ENABLE_ONE_CLICK_SIGNIN)
423
424const char kChromeEnterpriseSignInLearnMoreURL[] =
425  "http://support.google.com/chromeos/bin/answer.py?hl=en&answer=1331549";
426
427const char kResetProfileSettingsLearnMoreURL[] =
428    "https://support.google.com/chrome/?p=ui_reset_settings";
429
430const char kAutomaticSettingsResetLearnMoreURL[] =
431    "https://support.google.com/chrome/?p=ui_automatic_settings_reset";
432
433const char kSupervisedUserManagementURL[] = "https://www.chrome.com/manage";
434
435const char kSupervisedUserManagementDisplayURL[] = "www.chrome.com/manage";
436
437const char kSettingsSearchHelpURL[] =
438#if defined(OS_CHROMEOS)
439    "https://support.google.com/chromeos/?p=settings_search_help";
440#else
441    "https://support.google.com/chrome/?p=settings_search_help";
442#endif
443
444const char kOmniboxLearnMoreURL[] =
445#if defined(OS_CHROMEOS)
446    "https://support.google.com/chromeos/?p=settings_omnibox";
447#else
448    "https://support.google.com/chrome/?p=settings_omnibox";
449#endif
450
451const char kPageInfoHelpCenterURL[] =
452#if defined(OS_CHROMEOS)
453    "https://support.google.com/chromeos/?p=ui_security_indicator";
454#else
455    "https://support.google.com/chrome/?p=ui_security_indicator";
456#endif
457
458const char kCrashReasonURL[] =
459#if defined(OS_CHROMEOS)
460    "https://support.google.com/chromeos/?p=e_awsnap";
461#else
462    "https://support.google.com/chrome/?p=e_awsnap";
463#endif
464
465const char kKillReasonURL[] =
466#if defined(OS_CHROMEOS)
467    "https://support.google.com/chromeos/?p=e_deadjim";
468#else
469    "https://support.google.com/chrome/?p=e_deadjim";
470#endif
471
472const char kPrivacyLearnMoreURL[] =
473#if defined(OS_CHROMEOS)
474    "https://support.google.com/chromeos/?p=settings_privacy";
475#else
476    "https://support.google.com/chrome/?p=settings_privacy";
477#endif
478
479const char kDoNotTrackLearnMoreURL[] =
480#if defined(OS_CHROMEOS)
481    "https://support.google.com/chromeos/?p=settings_do_not_track";
482#else
483    "https://support.google.com/chrome/?p=settings_do_not_track";
484#endif
485
486#if defined(OS_CHROMEOS)
487const char kAttestationForContentProtectionLearnMoreURL[] =
488    "https://support.google.com/chromebook/?p=verified_access";
489
490const char kEnhancedPlaybackNotificationLearnMoreURL[] =
491    "https://support.google.com/chromebook/?p=enhanced_playback";
492#endif
493
494const char kChromiumProjectURL[] = "http://www.chromium.org/";
495
496const char kLearnMoreReportingURL[] =
497    "https://support.google.com/chrome/?p=ui_usagestat";
498
499const char kOutdatedPluginLearnMoreURL[] =
500    "https://support.google.com/chrome/?p=ib_outdated_plugin";
501
502const char kBlockedPluginLearnMoreURL[] =
503    "https://support.google.com/chrome/?p=ib_blocked_plugin";
504
505const char kHotwordLearnMoreURL[] =
506    "https://support.google.com/chrome/?p=ui_hotword_search";
507
508const char kLearnMoreRegisterProtocolHandlerURL[] =
509    "https://support.google.com/chrome/?p=ib_protocol_handler";
510
511const char kSyncLearnMoreURL[] =
512    "https://support.google.com/chrome/?p=settings_sign_in";
513
514const char kDownloadScanningLearnMoreURL[] =
515    "https://support.google.com/chrome/?p=ib_download_blocked";
516
517const char kDownloadInterruptedLearnMoreURL[] =
518    "https://support.google.com/chrome/?p=ui_download_errors";
519
520const char kSyncEverythingLearnMoreURL[] =
521    "https://support.google.com/chrome/?p=settings_sync_all";
522
523const char kCloudPrintLearnMoreURL[] =
524#if defined(OS_CHROMEOS)
525    "https://support.google.com/chromeos/?p=settings_cloud_print";
526#else
527    "https://support.google.com/chrome/?p=settings_cloud_print";
528#endif
529
530const char kCloudPrintNoDestinationsLearnMoreURL[] =
531    "https://www.google.com/cloudprint/learn/";
532
533const char kAppLauncherHelpURL[] =
534    "https://support.google.com/chrome_webstore/?p=cws_app_launcher";
535
536const char kSyncEncryptionHelpURL[] =
537#if defined(OS_CHROMEOS)
538    "https://support.google.com/chromeos/?p=settings_encryption";
539#else
540    "https://support.google.com/chrome/?p=settings_encryption";
541#endif
542
543const char kSyncErrorsHelpURL[] =
544    "https://support.google.com/chrome/?p=settings_sync_error";
545
546#if defined(OS_CHROMEOS)
547const char kNaturalScrollHelpURL[] =
548    "https://support.google.com/chromeos/?p=simple_scrolling";
549#endif
550
551#if defined(OS_CHROMEOS)
552const char kLearnMoreEnterpriseURL[] =
553    "https://support.google.com/chromeos/bin/answer.py?answer=2535613";
554#endif
555
556const char kRemoveNonCWSExtensionURL[] =
557    "https://support.google.com/chrome/answer/2811969?"
558    "p=ui_remove_non_cws_extensions&rd=1";
559
560const char kNotificationsHelpURL[] =
561    "https://support.google.com/chrome/?p=ui_notifications";
562
563const char kNotificationWelcomeLearnMoreURL[] =
564    "https://support.google.com/chrome/?p=ib_google_now_welcome";
565
566// Add hosts here to be included in chrome://chrome-urls (about:about).
567// These hosts will also be suggested by BuiltinProvider.
568const char* const kChromeHostURLs[] = {
569  kChromeUICacheHost,
570  kChromeUIChromeURLsHost,
571  kChromeUIComponentsHost,
572  kChromeUICrashesHost,
573  kChromeUICreditsHost,
574  kChromeUIDNSHost,
575  kChromeUIFlagsHost,
576  kChromeUIHistoryHost,
577  kChromeUIInvalidationsHost,
578  kChromeUIMemoryHost,
579  kChromeUIMemoryInternalsHost,
580  kChromeUINetInternalsHost,
581  kChromeUINewTabHost,
582  kChromeUIOmniboxHost,
583  kChromeUIPasswordManagerInternalsHost,
584  kChromeUIPredictorsHost,
585  kChromeUIProfilerHost,
586  kChromeUISignInInternalsHost,
587  kChromeUIStatsHost,
588  kChromeUISuggestionsHost,
589  kChromeUISyncInternalsHost,
590  kChromeUITermsHost,
591  kChromeUIThumbnailListHost,
592  kChromeUITranslateInternalsHost,
593  kChromeUIUserActionsHost,
594  kChromeUIVersionHost,
595  kChromeUIVoiceSearchHost,
596  content::kChromeUIAccessibilityHost,
597  content::kChromeUIAppCacheInternalsHost,
598  content::kChromeUIBlobInternalsHost,
599  content::kChromeUIGpuHost,
600  content::kChromeUIHistogramHost,
601  content::kChromeUIIndexedDBInternalsHost,
602  content::kChromeUIMediaInternalsHost,
603  content::kChromeUINetworkViewCacheHost,
604  content::kChromeUIServiceWorkerInternalsHost,
605  content::kChromeUITracingHost,
606  content::kChromeUIWebRTCInternalsHost,
607#if defined(OS_ANDROID)
608  kChromeUIWelcomeHost,
609#else
610  kChromeUIAppLauncherPageHost,
611  kChromeUIBookmarksHost,
612  kChromeUIDownloadsHost,
613  kChromeUIFlashHost,
614  kChromeUIGCMInternalsHost,
615  kChromeUIHelpHost,
616  kChromeUIInspectHost,
617  kChromeUIIPCHost,
618  kChromeUIPluginsHost,
619  kChromeUIQuotaInternalsHost,
620  kChromeUISettingsHost,
621  kChromeUISystemInfoHost,
622  kChromeUIUberHost,
623#endif
624#if defined(OS_ANDROID) || defined(OS_IOS)
625  kChromeUINetExportHost,
626#endif
627#if defined(OS_CHROMEOS)
628  kChromeUICertificateManagerHost,
629  kChromeUIChooseMobileNetworkHost,
630  kChromeUICryptohomeHost,
631  kChromeUIDiscardsHost,
632  kChromeUIDriveInternalsHost,
633  kChromeUIFirstRunHost,
634  kChromeUIImageBurnerHost,
635  kChromeUIKeyboardOverlayHost,
636  kChromeUILoginHost,
637  kChromeUINetworkHost,
638  kChromeUIOobeHost,
639  kChromeUIOSCreditsHost,
640  kChromeUIPowerHost,
641  kChromeUIProxySettingsHost,
642  kChromeUITaskManagerHost,
643#endif
644#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
645  kChromeUILinuxProxyConfigHost,
646  kChromeUISandboxHost,
647#endif
648#if defined(OS_WIN)
649  kChromeUIConflictsHost,
650#endif
651#if !defined(DISABLE_NACL)
652  kChromeUINaClHost,
653#endif
654#if defined(ENABLE_CONFIGURATION_POLICY)
655  kChromeUIPolicyHost,
656#endif
657#if defined(ENABLE_EXTENSIONS)
658  kChromeUIExtensionsHost,
659#endif
660#if defined(ENABLE_FULL_PRINTING)
661  kChromeUIPrintHost,
662#endif
663#if defined(ENABLE_SERVICE_DISCOVERY)
664  kChromeUIDevicesHost,
665#endif
666#if defined(ENABLE_WEBRTC)
667  kChromeUIWebRtcLogsHost,
668#endif
669};
670const size_t kNumberOfChromeHostURLs = arraysize(kChromeHostURLs);
671
672const char* const kChromeDebugURLs[] = {
673  content::kChromeUICrashURL,
674  content::kChromeUIDumpURL,
675  content::kChromeUIKillURL,
676  content::kChromeUIHangURL,
677  content::kChromeUIShorthangURL,
678  content::kChromeUIGpuCleanURL,
679  content::kChromeUIGpuCrashURL,
680  content::kChromeUIGpuHangURL,
681  content::kChromeUIPpapiFlashCrashURL,
682  content::kChromeUIPpapiFlashHangURL,
683  chrome::kChromeUIQuitURL,
684  chrome::kChromeUIRestartURL
685};
686const int kNumberOfChromeDebugURLs =
687    static_cast<int>(arraysize(kChromeDebugURLs));
688
689const char kChromeNativeScheme[] = "chrome-native";
690
691const char kChromeSearchScheme[] = "chrome-search";
692const char kChromeSearchLocalNtpHost[] = "local-ntp";
693const char kChromeSearchLocalNtpUrl[] =
694    "chrome-search://local-ntp/local-ntp.html";
695const char kChromeSearchRemoteNtpHost[] = "remote-ntp";
696
697const char kChromeSearchMostVisitedHost[] = "most-visited";
698const char kChromeSearchMostVisitedUrl[] = "chrome-search://most-visited/";
699
700// Google SafeSearch query parameters.
701const char kSafeSearchSafeParameter[] = "safe=active";
702const char kSafeSearchSsuiParameter[] = "ssui=on";
703
704const char kMediaAccessLearnMoreUrl[] =
705    "https://support.google.com/chrome/?p=ib_access_cam_mic";
706
707const char kLanguageSettingsLearnMoreUrl[] =
708#if defined(OS_CHROMEOS)
709    "https://support.google.com/chromebook/answer/1059490";
710#else
711    "https://support.google.com/chrome/topic/1678461";
712#endif
713
714#if defined(OS_MACOSX)
715const char kMac32BitDeprecationURL[] =
716#if !defined(ARCH_CPU_64_BITS)
717    "https://support.google.com/chrome/?p=ui_mac_32bit_support";
718#else
719    "";
720#endif
721#endif
722
723const char kEasyUnlockLearnMoreUrl[] =
724    "https://support.google.com/chromebook/answer/6070209";
725
726}  // namespace chrome
727