• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 <stdlib.h>
6 
7 #include "chrome/common/url_constants.h"
8 #include "googleurl/src/url_util.h"
9 
10 namespace chrome {
11 
12 #if defined(OS_CHROMEOS)
13 const char kCrosScheme[] = "cros";
14 #endif
15 
16 const char* kSavableSchemes[] = {
17   kHttpScheme,
18   kHttpsScheme,
19   kFileScheme,
20   kFtpScheme,
21   kExtensionScheme,
22   kChromeDevToolsScheme,
23   kChromeUIScheme,
24   NULL
25 };
26 
27 const char kAboutAboutURL[] = "about:about";
28 const char kAboutAppCacheInternalsURL[] = "about:appcache-internals";
29 const char kAboutCacheURL[] = "about:cache";
30 const char kAboutConflicts[] = "about:conflicts";
31 const char kAboutKillURL[] = "about:kill";
32 const char kAboutCreditsURL[] = "about:credits";
33 const char kAboutDNSURL[] = "about:dns";
34 const char kAboutFlagsURL[] = "about:flags";
35 const char kAboutGpuURL[] = "about:gpu";
36 const char kAboutGpuCrashURL[] = "about:gpucrash";
37 const char kAboutGpuHangURL[] = "about:gpuhang";
38 const char kAboutHangURL[] = "about:hang";
39 const char kAboutHistogramsURL[] = "about:histograms";
40 const char kAboutMemoryURL[] = "about:memory";
41 const char kAboutNetInternalsURL[] = "about:net-internals";
42 const char kAboutPluginsURL[] = "about:plugins";
43 const char kAboutShorthangURL[] = "about:shorthang";
44 const char kAboutSyncURL[] = "about:sync";
45 const char kAboutSyncInternalsURL[] = "about:sync-internals";
46 const char kAboutTermsURL[] = "about:terms";
47 const char kAboutVersionURL[] = "about:version";
48 
49 // Use an obfuscated URL to make this nondiscoverable, we only want this
50 // to be used for testing.
51 const char kAboutBrowserCrash[] = "about:inducebrowsercrashforrealz";
52 
53 const char kChromeUIAboutAboutURL[] = "chrome://about/about";
54 const char kChromeUIAboutCreditsURL[] = "chrome://about/credits";
55 const char kChromeUIAboutURL[] = "chrome://settings/about";
56 const char kChromeUIAppLauncherURL[] = "chrome://newtab/#mode=app-launcher";
57 const char kChromeUIBookmarksURL[] = "chrome://bookmarks/";
58 const char kChromeUIBugReportURL[] = "chrome://bugreport/";
59 const char kChromeUIConflictsURL[] = "chrome://conflicts/";
60 const char kChromeUIConstrainedHTMLTestURL[] = "chrome://constrained-test/";
61 const char kChromeUICrashesURL[] = "chrome://crashes/";
62 const char kChromeUIDevToolsURL[] = "chrome-devtools://devtools/";
63 const char kChromeUIDownloadsURL[] = "chrome://downloads/";
64 const char kChromeUIExtensionIconURL[] = "chrome://extension-icon/";
65 const char kChromeUIExtensionsURL[] = "chrome://extensions/";
66 const char kChromeUIFaviconURL[] = "chrome://favicon/";
67 const char kChromeUIFlagsURL[] = "chrome://flags/";
68 const char kChromeUIHistory2URL[] = "chrome://history2/";
69 const char kChromeUIHistoryURL[] = "chrome://history/";
70 const char kChromeUIIPCURL[] = "chrome://about/ipc";
71 const char kChromeUIKeyboardURL[] = "chrome://keyboard/";
72 const char kChromeUINewTabURL[] = "chrome://newtab";
73 const char kChromeUIPluginsURL[] = "chrome://plugins/";
74 const char kChromeUIPrintURL[] = "chrome://print/";
75 const char kChromeUISettingsURL[] = "chrome://settings/";
76 const char kChromeUITextfieldsURL[] = "chrome://textfields/";
77 
78 #if defined(OS_CHROMEOS)
79 const char kChromeUIAboutOSCreditsURL[] = "chrome://about/os-credits";
80 const char kChromeUIActivationMessage[] = "chrome://activationmessage/";
81 const char kChromeUIFileBrowseURL[] = "chrome://filebrowse/";
82 const char kChromeUIActiveDownloadsURL[] = "chrome://active-downloads/";
83 const char kChromeUIChooseMobileNetworkURL[] =
84     "chrome://choose-mobile-network/";
85 const char kChromeUICollectedCookiesURL[] = "chrome://collected-cookies/";
86 const char kChromeUIHttpAuthURL[] = "chrome://http-auth/";
87 const char kChromeUIImageBurnerURL[] = "chrome://imageburner/";
88 const char kChromeUIKeyboardOverlayURL[] = "chrome://keyboardoverlay/";
89 const char kChromeUIMediaplayerURL[] = "chrome://mediaplayer/";
90 const char kChromeUIMobileSetupURL[] = "chrome://mobilesetup/";
91 const char kChromeUIProxySettingsURL[] = "chrome://proxy-settings/";
92 const char kChromeUIRegisterPageURL[] = "chrome://register/";
93 const char kChromeUISlideshowURL[] = "chrome://slideshow/";
94 const char kChromeUISimUnlockURL[] = "chrome://sim-unlock/";
95 const char kChromeUISystemInfoURL[] = "chrome://system/";
96 const char kChromeUIUserImageURL[] = "chrome://userimage/";
97 const char kChromeUIEnterpriseEnrollmentURL[] =
98     "chrome://enterprise-enrollment/";
99 #endif
100 
101 // Keep this list sorted please.
102 const char kChromeUIBookmarksHost[] = "bookmarks";
103 const char kChromeUIBugReportHost[] = "bugreport";
104 const char kChromeUIConflictsHost[] = "conflicts";
105 const char kChromeUICrashesHost[] = "crashes";
106 const char kChromeUIDevToolsHost[] = "devtools";
107 const char kChromeUIDialogHost[] = "dialog";
108 const char kChromeUIDownloadsHost[] = "downloads";
109 const char kChromeUIExtensionIconHost[] = "extension-icon";
110 const char kChromeUIExtensionsHost[] = "extensions";
111 const char kChromeUIFaviconHost[] = "favicon";
112 const char kChromeUIFlagsHost[] = "flags";
113 const char kChromeUIGpuInternalsHost[] = "gpu-internals";
114 const char kChromeUIHistoryHost[] = "history";
115 const char kChromeUIHistory2Host[] = "history2";
116 const char kChromeUIInspectorHost[] = "inspector";
117 const char kChromeUIKeyboardHost[] = "keyboard";
118 const char kChromeUINetInternalsHost[] = "net-internals";
119 const char kChromeUINewTabHost[] = "newtab";
120 const char kChromeUIPluginsHost[] = "plugins";
121 const char kChromeUIPrintHost[] = "print";
122 const char kChromeUIRemotingHost[] = "remoting";
123 const char kChromeUIRemotingResourcesHost[] = "remotingresources";
124 const char kChromeUIResourcesHost[] = "resources";
125 const char kChromeUIScreenshotPath[] = "screenshots";
126 const char kChromeUISettingsHost[] = "settings";
127 const char kChromeUISyncInternalsHost[] = "sync-internals";
128 const char kChromeUISyncResourcesHost[] = "syncresources";
129 const char kChromeUITextfieldsHost[] = "textfields";
130 const char kChromeUIThemePath[] = "theme";
131 const char kChromeUIThumbnailPath[] = "thumb";
132 
133 #if defined(OS_CHROMEOS)
134 const char kChromeUIActiveDownloadsHost[] = "active-downloads";
135 const char kChromeUIActivationMessageHost[] = "activationmessage";
136 const char kChromeUIChooseMobileNetworkHost[] = "choose-mobile-network";
137 const char kChromeUICollectedCookiesHost[] = "collected-cookies";
138 const char kChromeUIHttpAuthHost[] = "http-auth";
139 const char kChromeUIImageBurnerHost[] = "imageburner";
140 const char kChromeUIKeyboardOverlayHost[] = "keyboardoverlay";
141 const char kChromeUIMediaplayerHost[] = "mediaplayer";
142 const char kChromeUIMobileSetupHost[] = "mobilesetup";
143 const char kChromeUIProxySettingsHost[] = "proxy-settings";
144 const char kChromeUIRegisterPageHost[] = "register";
145 const char kChromeUISlideshowHost[] = "slideshow";
146 const char kChromeUISimUnlockHost[] = "sim-unlock";
147 const char kChromeUISystemInfoHost[] = "system";
148 const char kChromeUIMenu[] = "menu";
149 const char kChromeUIWrenchMenu[] = "wrench-menu";
150 const char kChromeUINetworkMenu[] = "network-menu";
151 const char kChromeUIUserImageHost[] = "userimage";
152 const char kChromeUIEnterpriseEnrollmentHost[] = "enterprise-enrollment";
153 #endif
154 
155 #if defined(OS_CHROMEOS) && defined(TOUCH_UI)
156 const char kChromeUILoginContainerHost[] = "login-container";
157 const char kChromeUILoginHost[] = "login";
158 #endif
159 
160 const char kAppCacheViewInternalsURL[] = "chrome://appcache-internals/";
161 
162 const char kBlobViewInternalsURL[] = "chrome://blob-internals/";
163 
164 const char kCloudPrintResourcesURL[] = "chrome://cloudprintresources/";
165 const char kCloudPrintResourcesHost[] = "cloudprintresources";
166 const char kCloudPrintSetupHost[] = "cloudprintsetup";
167 
168 const char kNetworkViewInternalsURL[] = "chrome://net-internals/";
169 const char kNetworkViewCacheURL[] = "chrome://view-http-cache/";
170 
171 const char kSyncViewInternalsURL[] = "chrome://sync-internals/";
172 
173 // GPU sub pages
174 const char kGpuInternalsURL[] = "chrome://gpu-internals/";
175 
176 // Option sub pages.
177 const char kAdvancedOptionsSubPage[] =  "advanced";
178 const char kAutofillSubPage[] = "autofill";
179 const char kBrowserOptionsSubPage[] =  "browser";
180 const char kClearBrowserDataSubPage[] = "clearBrowserData";
181 const char kContentSettingsSubPage[] = "content";
182 const char kContentSettingsExceptionsSubPage[] = "contentExceptions";
183 const char kDefaultOptionsSubPage[] =  "";
184 const char kImportDataSubPage[] = "importData";
185 const char kInstantConfirmPage[] = "instantConfirm";
186 const char kLanguageOptionsSubPage[] = "languages";
187 const char kPersonalOptionsSubPage[] =  "personal";
188 const char kPasswordManagerSubPage[] =  "passwords";
189 const char kSearchEnginesSubPage[] = "searchEngines";
190 const char kSyncSetupSubPage[] = "syncSetup";
191 #if defined(OS_CHROMEOS)
192 const char kInternetOptionsSubPage[] = "internet";
193 const char kSystemOptionsSubPage[] = "system";
194 #endif
195 
196 const char kPasswordManagerLearnMoreURL[] =
197 #if defined(OS_CHROMEOS)
198     "https://www.google.com/support/chromeos/bin/answer.py?answer=95606";
199 #else
200     "https://www.google.com/support/chrome/bin/answer.py?answer=95606";
201 #endif
202 
203 const char kChromeHelpURL[] =
204 #if defined(OS_CHROMEOS)
205   "https://www.google.com/support/chromeos/";
206 #else
207   "https://www.google.com/support/chrome/";
208 #endif
209 
210   const char kPageInfoHelpCenterURL[] =
211 #if defined(OS_CHROMEOS)
212     "https://www.google.com/support/chromeos/bin/answer.py?answer=95617";
213 #else
214     "https://www.google.com/support/chrome/bin/answer.py?answer=95617";
215 #endif
216 
217 const char kCrashReasonURL[] =
218 #if defined(OS_CHROMEOS)
219     "https://www.google.com/support/chromeos/bin/answer.py?answer=1047340";
220 #else
221     "https://www.google.com/support/chrome/bin/answer.py?answer=95669";
222 #endif
223 
224 // TODO: These are currently placeholders that point to the crash
225 // docs.  See bug http://crosbug.com/10711
226 const char kKillReasonURL[] =
227 #if defined(OS_CHROMEOS)
228     "https://www.google.com/support/chromeos/bin/answer.py?answer=1047340";
229 #else
230     "https://www.google.com/support/chrome/bin/answer.py?answer=95669";
231 #endif
232 
233 const char kPrivacyLearnMoreURL[] =
234 #if defined(OS_CHROMEOS)
235     "https://www.google.com/support/chromeos/bin/answer.py?answer=1047334";
236 #else
237     "https://www.google.com/support/chrome/bin/answer.py?answer=114836";
238 #endif
239 
240 const char kChromiumProjectURL[] = "http://code.google.com/chromium/";
241 
242 const char kLearnMoreReportingURL[] =
243     "https://www.google.com/support/chrome/bin/answer.py?answer=96817";
244 
245 const char kOutdatedPluginLearnMoreURL[] =
246     "https://www.google.com/support/chrome/bin/answer.py?answer=1181003";
247 
248 const char kBlockedPluginLearnMoreURL[] =
249     "https://www.google.com/support/chrome/bin/answer.py?answer=1247383";
250 
RegisterChromeSchemes()251 void RegisterChromeSchemes() {
252   // Don't need "chrome-internal" which was used in old versions of Chrome for
253   // the new tab page.
254   url_util::AddStandardScheme(kChromeDevToolsScheme);
255   url_util::AddStandardScheme(kChromeUIScheme);
256   url_util::AddStandardScheme(kExtensionScheme);
257   url_util::AddStandardScheme(kMetadataScheme);
258 #if defined(OS_CHROMEOS)
259   url_util::AddStandardScheme(kCrosScheme);
260 #endif
261 
262   // Prevent future modification of the standard schemes list. This is to
263   // prevent accidental creation of data races in the program. AddStandardScheme
264   // isn't threadsafe so must be called when GURL isn't used on any other
265   // thread. This is really easy to mess up, so we say that all calls to
266   // AddStandardScheme in Chrome must be inside this function.
267   url_util::LockStandardSchemes();
268 }
269 
270 }  // namespace chrome
271