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