Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: chrome/browser/browser_about_handler.cc

Issue 2813037: Revert 50917 - Added an about:about page (continuation)... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/common/url_constants.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/browser_about_handler.h" 5 #include "chrome/browser/browser_about_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // Glue between the callback task and the method in the singleton. 79 // Glue between the callback task and the method in the singleton.
80 void AboutTcmallocRendererCallback(base::ProcessId pid, std::string output) { 80 void AboutTcmallocRendererCallback(base::ProcessId pid, std::string output) {
81 Singleton<AboutTcmallocOutputs>::get()->RendererCallback(pid, output); 81 Singleton<AboutTcmallocOutputs>::get()->RendererCallback(pid, output);
82 } 82 }
83 #endif 83 #endif
84 84
85 namespace { 85 namespace {
86 86
87 // The (alphabetized) paths used for the about pages. 87 // The (alphabetized) paths used for the about pages.
88 const char kCreditsPath[] = "credits"; 88 const char kCreditsPath[] = "credits";
89 const char kCachePath[] = "cache";
90 const char kDnsPath[] = "dns"; 89 const char kDnsPath[] = "dns";
91 const char kHistogramsPath[] = "histograms"; 90 const char kHistogramsPath[] = "histograms";
92 const char kMemoryRedirectPath[] = "memory-redirect"; 91 const char kMemoryRedirectPath[] = "memory-redirect";
93 const char kMemoryPath[] = "memory"; 92 const char kMemoryPath[] = "memory";
94 const char kStatsPath[] = "stats"; 93 const char kStatsPath[] = "stats";
95 const char kSyncPath[] = "sync"; 94 const char kSyncPath[] = "sync";
96 const char kTasksPath[] = "tasks"; 95 const char kTasksPath[] = "tasks";
97 const char kTcmallocPath[] = "tcmalloc"; 96 const char kTcmallocPath[] = "tcmalloc";
98 const char kTermsPath[] = "terms"; 97 const char kTermsPath[] = "terms";
99 const char kVersionPath[] = "version"; 98 const char kVersionPath[] = "version";
100 const char kAboutPath[] = "about";
101 // Not about:* pages, but included to make about:about look nicer
102 const char kNetInternalsPath[] = "net-internals";
103 const char kPluginsPath[] = "plugins";
104 99
105 #if defined(OS_LINUX) 100 #if defined(OS_LINUX)
106 const char kLinuxProxyConfigPath[] = "linux-proxy-config"; 101 const char kLinuxProxyConfigPath[] = "linux-proxy-config";
107 #endif 102 #endif
108 103
109 #if defined(OS_CHROMEOS) 104 #if defined(OS_CHROMEOS)
110 const char kNetworkPath[] = "network"; 105 const char kNetworkPath[] = "network";
111 const char kOSCreditsPath[] = "os-credits"; 106 const char kOSCreditsPath[] = "os-credits";
112 const char kSysPath[] = "system"; 107 const char kSysPath[] = "system";
113 #endif 108 #endif
114 109
115 // Add path here to be included in about:about
116 const char *kAllAboutPaths[] = {
117 kCachePath,
118 kCreditsPath,
119 kDnsPath,
120 kHistogramsPath,
121 kMemoryPath,
122 kNetInternalsPath,
123 kPluginsPath,
124 kStatsPath,
125 kSyncPath,
126 kTasksPath,
127 kTcmallocPath,
128 kTermsPath,
129 kVersionPath,
130 #if defined(OS_LINUX)
131 kLinuxProxyConfigPath,
132 #endif
133 #if defined(OS_CHROMEOS)
134 kNetworkPath,
135 kOSCreditPath,
136 kSysPath,
137 #endif
138 };
139
140 // Points to the singleton AboutSource object, if any. 110 // Points to the singleton AboutSource object, if any.
141 ChromeURLDataManager::DataSource* about_source = NULL; 111 ChromeURLDataManager::DataSource* about_source = NULL;
142 112
143 // When you type about:memory, it actually loads an intermediate URL that 113 // When you type about:memory, it actually loads an intermediate URL that
144 // redirects you to the final page. This avoids the problem where typing 114 // redirects you to the final page. This avoids the problem where typing
145 // "about:memory" on the new tab page or any other page where a process 115 // "about:memory" on the new tab page or any other page where a process
146 // transition would occur to the about URL will cause some confusion. 116 // transition would occur to the about URL will cause some confusion.
147 // 117 //
148 // The problem is that during the processing of the memory page, there are two 118 // The problem is that during the processing of the memory page, there are two
149 // processes active, the original and the destination one. This can create the 119 // processes active, the original and the destination one. This can create the
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 198
229 // Used to request the version. 199 // Used to request the version.
230 CancelableRequestConsumer consumer_; 200 CancelableRequestConsumer consumer_;
231 201
232 DISALLOW_COPY_AND_ASSIGN(ChromeOSAboutVersionHandler); 202 DISALLOW_COPY_AND_ASSIGN(ChromeOSAboutVersionHandler);
233 }; 203 };
234 #endif 204 #endif
235 205
236 // Individual about handlers --------------------------------------------------- 206 // Individual about handlers ---------------------------------------------------
237 207
238 std::string AboutAbout() {
239 std::string html;
240 html.append("<html><head><title>About Pages</title></head><body>\n");
241 html.append("<h2>List of About pages</h2><ul>\n");
242 for (size_t i = 0; i < arraysize(kAllAboutPaths); i++) {
243 if (kAllAboutPaths[i] == kNetInternalsPath ||
244 kAllAboutPaths[i] == kPluginsPath)
245 html.append("<li><a href='chrome://");
246 else
247 html.append("<li><a href='chrome://about/");
248 html.append(kAllAboutPaths[i]);
249 html.append("/'>about:");
250 html.append(kAllAboutPaths[i]);
251 html.append("</a>\n");
252 }
253 const char *debug[] = { "crash", "hang", "shorthang" };
254 html.append("</ul><h2>For Debug</h2>");
255 html.append("</ul><p>The following pages are for debugging purposes only. "
256 "Because they crash or hang the renderer, they're not linked "
257 "directly; you can type them into the address bar if you need "
258 "them.</p><ul>");
259 for (size_t i = 0; i < arraysize(debug); i++) {
260 html.append("<li>");
261 html.append("about:");
262 html.append(debug[i]);
263 html.append("\n");
264 }
265 html.append("</ul></body></html>");
266 return html;
267 }
268
269 #if defined(OS_CHROMEOS) 208 #if defined(OS_CHROMEOS)
270 std::string AboutNetwork(const std::string& query) { 209 std::string AboutNetwork(const std::string& query) {
271 int refresh; 210 int refresh;
272 StringToInt(query, &refresh); 211 StringToInt(query, &refresh);
273 return chromeos::CrosLibrary::Get()->GetNetworkLibrary()-> 212 return chromeos::CrosLibrary::Get()->GetNetworkLibrary()->
274 GetHtmlInfo(refresh); 213 GetHtmlInfo(refresh);
275 } 214 }
276 #endif 215 #endif
277 216
278 // AboutDnsHandler bounces the request back to the IO thread to collect 217 // AboutDnsHandler bounces the request back to the IO thread to collect
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 #if defined(OS_CHROMEOS) 733 #if defined(OS_CHROMEOS)
795 new ChromeOSAboutVersionHandler(this, request_id); 734 new ChromeOSAboutVersionHandler(this, request_id);
796 return; 735 return;
797 #else 736 #else
798 DictionaryValue value; 737 DictionaryValue value;
799 response = AboutVersion(&value); 738 response = AboutVersion(&value);
800 #endif 739 #endif
801 } else if (path == kCreditsPath) { 740 } else if (path == kCreditsPath) {
802 response = ResourceBundle::GetSharedInstance().GetRawDataResource( 741 response = ResourceBundle::GetSharedInstance().GetRawDataResource(
803 IDR_CREDITS_HTML).as_string(); 742 IDR_CREDITS_HTML).as_string();
804 } else if (path == kAboutPath) {
805 response = AboutAbout();
806 #if defined(OS_CHROMEOS) 743 #if defined(OS_CHROMEOS)
807 } else if (path == kOSCreditsPath) { 744 } else if (path == kOSCreditsPath) {
808 response = ResourceBundle::GetSharedInstance().GetRawDataResource( 745 response = ResourceBundle::GetSharedInstance().GetRawDataResource(
809 IDR_OS_CREDITS_HTML).as_string(); 746 IDR_OS_CREDITS_HTML).as_string();
810 } else if (path == kNetworkPath) { 747 } else if (path == kNetworkPath) {
811 response = AboutNetwork(info); 748 response = AboutNetwork(info);
812 #endif 749 #endif
813 } else if (path == kTermsPath) { 750 } else if (path == kTermsPath) {
814 response = ResourceBundle::GetSharedInstance().GetRawDataResource( 751 response = ResourceBundle::GetSharedInstance().GetRawDataResource(
815 IDR_TERMS_HTML).as_string(); 752 IDR_TERMS_HTML).as_string();
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
1106 // Run the dialog. This will re-use the existing one if it's already up. 1043 // Run the dialog. This will re-use the existing one if it's already up.
1107 AboutIPCDialog::RunDialog(); 1044 AboutIPCDialog::RunDialog();
1108 return true; 1045 return true;
1109 } 1046 }
1110 #endif 1047 #endif
1111 1048
1112 #endif // OFFICIAL_BUILD 1049 #endif // OFFICIAL_BUILD
1113 1050
1114 return false; 1051 return false;
1115 } 1052 }
OLDNEW
« no previous file with comments | « no previous file | chrome/common/url_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698