diff options
author | hinoka@chromium.org <hinoka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-28 20:25:59 +0000 |
---|---|---|
committer | hinoka@chromium.org <hinoka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-28 20:25:59 +0000 |
commit | 4895ce80a2312de7b3a53176edddd9f7b676d402 (patch) | |
tree | 653575e9ce74346dd4a7f9d50f52d0a314faba7c /chrome | |
parent | d2bfb9a347378e06cf0b750bbabc3b6606bb83db (diff) | |
download | chromium_src-4895ce80a2312de7b3a53176edddd9f7b676d402.zip chromium_src-4895ce80a2312de7b3a53176edddd9f7b676d402.tar.gz chromium_src-4895ce80a2312de7b3a53176edddd9f7b676d402.tar.bz2 |
Added about:about page.
BUG=44699
TEST=Go to about:about, and see if About page loads. Check if links work.
Review URL: http://codereview.chromium.org/2845027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51038 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/browser_about_handler.cc | 63 | ||||
-rw-r--r-- | chrome/common/url_constants.cc | 4 | ||||
-rw-r--r-- | chrome/common/url_constants.h | 4 | ||||
-rw-r--r-- | chrome/test/functional/special_tabs.py | 1 |
4 files changed, 72 insertions, 0 deletions
diff --git a/chrome/browser/browser_about_handler.cc b/chrome/browser/browser_about_handler.cc index a7f0bcf..d76b048 100644 --- a/chrome/browser/browser_about_handler.cc +++ b/chrome/browser/browser_about_handler.cc @@ -86,6 +86,7 @@ namespace { // The (alphabetized) paths used for the about pages. const char kCreditsPath[] = "credits"; +const char kCachePath[] = "cache"; const char kDnsPath[] = "dns"; const char kHistogramsPath[] = "histograms"; const char kMemoryRedirectPath[] = "memory-redirect"; @@ -96,6 +97,10 @@ const char kTasksPath[] = "tasks"; const char kTcmallocPath[] = "tcmalloc"; const char kTermsPath[] = "terms"; const char kVersionPath[] = "version"; +const char kAboutPath[] = "about"; +// Not about:* pages, but included to make about:about look nicer +const char kNetInternalsPath[] = "net-internals"; +const char kPluginsPath[] = "plugins"; #if defined(OS_LINUX) const char kLinuxProxyConfigPath[] = "linux-proxy-config"; @@ -107,6 +112,31 @@ const char kOSCreditsPath[] = "os-credits"; const char kSysPath[] = "system"; #endif +// Add path here to be included in about:about +const char *kAllAboutPaths[] = { + kCachePath, + kCreditsPath, + kDnsPath, + kHistogramsPath, + kMemoryPath, + kNetInternalsPath, + kPluginsPath, + kStatsPath, + kSyncPath, + kTasksPath, + kTcmallocPath, + kTermsPath, + kVersionPath, +#if defined(OS_LINUX) + kLinuxProxyConfigPath, +#endif +#if defined(OS_CHROMEOS) + kNetworkPath, + kOSCreditsPath, + kSysPath, +#endif + }; + // Points to the singleton AboutSource object, if any. ChromeURLDataManager::DataSource* about_source = NULL; @@ -205,6 +235,37 @@ class ChromeOSAboutVersionHandler { // Individual about handlers --------------------------------------------------- +std::string AboutAbout() { + std::string html; + html.append("<html><head><title>About Pages</title></head><body>\n"); + html.append("<h2>List of About pages</h2><ul>\n"); + for (size_t i = 0; i < arraysize(kAllAboutPaths); i++) { + if (kAllAboutPaths[i] == kNetInternalsPath || + kAllAboutPaths[i] == kPluginsPath) + html.append("<li><a href='chrome://"); + else + html.append("<li><a href='chrome://about/"); + html.append(kAllAboutPaths[i]); + html.append("/'>about:"); + html.append(kAllAboutPaths[i]); + html.append("</a>\n"); + } + const char *debug[] = { "crash", "hang", "shorthang" }; + html.append("</ul><h2>For Debug</h2>"); + html.append("</ul><p>The following pages are for debugging purposes only. " + "Because they crash or hang the renderer, they're not linked " + "directly; you can type them into the address bar if you need " + "them.</p><ul>"); + for (size_t i = 0; i < arraysize(debug); i++) { + html.append("<li>"); + html.append("about:"); + html.append(debug[i]); + html.append("\n"); + } + html.append("</ul></body></html>"); + return html; +} + #if defined(OS_CHROMEOS) std::string AboutNetwork(const std::string& query) { int refresh; @@ -740,6 +801,8 @@ void AboutSource::StartDataRequest(const std::string& path_raw, } else if (path == kCreditsPath) { response = ResourceBundle::GetSharedInstance().GetRawDataResource( IDR_CREDITS_HTML).as_string(); + } else if (path == kAboutPath) { + response = AboutAbout(); #if defined(OS_CHROMEOS) } else if (path == kOSCreditsPath) { response = ResourceBundle::GetSharedInstance().GetRawDataResource( diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc index 5bb6ba8..5b625d1 100644 --- a/chrome/common/url_constants.cc +++ b/chrome/common/url_constants.cc @@ -51,6 +51,10 @@ const char kAboutNetInternalsURL[] = "about:net-internals"; const char kAboutPluginsURL[] = "about:plugins"; const char kAboutShorthangURL[] = "about:shorthang"; const char kAboutTermsURL[] = "about:terms"; +const char kAboutAboutURL[] = "about:about"; +const char kAboutDNSURL[] = "about:dns"; +const char kAboutHistogramsURL[] = "about:histograms"; +const char kAboutVersionURL[] = "about:version"; // Use an obfuscated URL to make this nondiscoverable, we only want this // to be used for testing. diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h index b83c928..1972fce 100644 --- a/chrome/common/url_constants.h +++ b/chrome/common/url_constants.h @@ -46,6 +46,10 @@ extern const char kAboutMemoryURL[]; extern const char kAboutPluginsURL[]; extern const char kAboutShorthangURL[]; extern const char kAboutTermsURL[]; +extern const char kAboutAboutURL[]; +extern const char kAboutDNSURL[]; +extern const char kAboutHistogramsURL[]; +extern const char kAboutVersionURL[]; // chrome: URLs (including schemes). Should be kept in sync with the // components below. diff --git a/chrome/test/functional/special_tabs.py b/chrome/test/functional/special_tabs.py index 0edc858..954f937 100644 --- a/chrome/test/functional/special_tabs.py +++ b/chrome/test/functional/special_tabs.py @@ -18,6 +18,7 @@ class SpecialTabsTest(pyauto.PyUITest): special_url_tabs = { 'about:': 'About Version', + 'about:about': 'About Pages', 'about:appcache-internals': 'AppCache Internals', 'about:credits': 'Credits', 'about:dns': 'About DNS', |