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

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

Issue 2845027: Added about:about page.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 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";
89 const char kDnsPath[] = "dns"; 90 const char kDnsPath[] = "dns";
90 const char kHistogramsPath[] = "histograms"; 91 const char kHistogramsPath[] = "histograms";
91 const char kMemoryRedirectPath[] = "memory-redirect"; 92 const char kMemoryRedirectPath[] = "memory-redirect";
92 const char kMemoryPath[] = "memory"; 93 const char kMemoryPath[] = "memory";
93 const char kStatsPath[] = "stats"; 94 const char kStatsPath[] = "stats";
94 const char kSyncPath[] = "sync"; 95 const char kSyncPath[] = "sync";
95 const char kTasksPath[] = "tasks"; 96 const char kTasksPath[] = "tasks";
96 const char kTcmallocPath[] = "tcmalloc"; 97 const char kTcmallocPath[] = "tcmalloc";
97 const char kTermsPath[] = "terms"; 98 const char kTermsPath[] = "terms";
98 const char kVersionPath[] = "version"; 99 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";
99 104
100 #if defined(OS_LINUX) 105 #if defined(OS_LINUX)
101 const char kLinuxProxyConfigPath[] = "linux-proxy-config"; 106 const char kLinuxProxyConfigPath[] = "linux-proxy-config";
102 #endif 107 #endif
103 108
104 #if defined(OS_CHROMEOS) 109 #if defined(OS_CHROMEOS)
105 const char kNetworkPath[] = "network"; 110 const char kNetworkPath[] = "network";
106 const char kOSCreditsPath[] = "os-credits"; 111 const char kOSCreditsPath[] = "os-credits";
107 const char kSysPath[] = "system"; 112 const char kSysPath[] = "system";
108 #endif 113 #endif
109 114
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 kOSCreditsPath,
136 kSysPath,
137 #endif
138 };
139
110 // Points to the singleton AboutSource object, if any. 140 // Points to the singleton AboutSource object, if any.
111 ChromeURLDataManager::DataSource* about_source = NULL; 141 ChromeURLDataManager::DataSource* about_source = NULL;
112 142
113 // When you type about:memory, it actually loads an intermediate URL that 143 // When you type about:memory, it actually loads an intermediate URL that
114 // redirects you to the final page. This avoids the problem where typing 144 // redirects you to the final page. This avoids the problem where typing
115 // "about:memory" on the new tab page or any other page where a process 145 // "about:memory" on the new tab page or any other page where a process
116 // transition would occur to the about URL will cause some confusion. 146 // transition would occur to the about URL will cause some confusion.
117 // 147 //
118 // The problem is that during the processing of the memory page, there are two 148 // The problem is that during the processing of the memory page, there are two
119 // processes active, the original and the destination one. This can create the 149 // processes active, the original and the destination one. This can create the
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 228
199 // Used to request the version. 229 // Used to request the version.
200 CancelableRequestConsumer consumer_; 230 CancelableRequestConsumer consumer_;
201 231
202 DISALLOW_COPY_AND_ASSIGN(ChromeOSAboutVersionHandler); 232 DISALLOW_COPY_AND_ASSIGN(ChromeOSAboutVersionHandler);
203 }; 233 };
204 #endif 234 #endif
205 235
206 // Individual about handlers --------------------------------------------------- 236 // Individual about handlers ---------------------------------------------------
207 237
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
208 #if defined(OS_CHROMEOS) 269 #if defined(OS_CHROMEOS)
209 std::string AboutNetwork(const std::string& query) { 270 std::string AboutNetwork(const std::string& query) {
210 int refresh; 271 int refresh;
211 StringToInt(query, &refresh); 272 StringToInt(query, &refresh);
212 return chromeos::CrosLibrary::Get()->GetNetworkLibrary()-> 273 return chromeos::CrosLibrary::Get()->GetNetworkLibrary()->
213 GetHtmlInfo(refresh); 274 GetHtmlInfo(refresh);
214 } 275 }
215 #endif 276 #endif
216 277
217 // AboutDnsHandler bounces the request back to the IO thread to collect 278 // AboutDnsHandler bounces the request back to the IO thread to collect
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 #if defined(OS_CHROMEOS) 794 #if defined(OS_CHROMEOS)
734 new ChromeOSAboutVersionHandler(this, request_id); 795 new ChromeOSAboutVersionHandler(this, request_id);
735 return; 796 return;
736 #else 797 #else
737 DictionaryValue value; 798 DictionaryValue value;
738 response = AboutVersion(&value); 799 response = AboutVersion(&value);
739 #endif 800 #endif
740 } else if (path == kCreditsPath) { 801 } else if (path == kCreditsPath) {
741 response = ResourceBundle::GetSharedInstance().GetRawDataResource( 802 response = ResourceBundle::GetSharedInstance().GetRawDataResource(
742 IDR_CREDITS_HTML).as_string(); 803 IDR_CREDITS_HTML).as_string();
804 } else if (path == kAboutPath) {
805 response = AboutAbout();
743 #if defined(OS_CHROMEOS) 806 #if defined(OS_CHROMEOS)
744 } else if (path == kOSCreditsPath) { 807 } else if (path == kOSCreditsPath) {
745 response = ResourceBundle::GetSharedInstance().GetRawDataResource( 808 response = ResourceBundle::GetSharedInstance().GetRawDataResource(
746 IDR_OS_CREDITS_HTML).as_string(); 809 IDR_OS_CREDITS_HTML).as_string();
747 } else if (path == kNetworkPath) { 810 } else if (path == kNetworkPath) {
748 response = AboutNetwork(info); 811 response = AboutNetwork(info);
749 #endif 812 #endif
750 } else if (path == kTermsPath) { 813 } else if (path == kTermsPath) {
751 response = ResourceBundle::GetSharedInstance().GetRawDataResource( 814 response = ResourceBundle::GetSharedInstance().GetRawDataResource(
752 IDR_TERMS_HTML).as_string(); 815 IDR_TERMS_HTML).as_string();
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 // Run the dialog. This will re-use the existing one if it's already up. 1106 // Run the dialog. This will re-use the existing one if it's already up.
1044 AboutIPCDialog::RunDialog(); 1107 AboutIPCDialog::RunDialog();
1045 return true; 1108 return true;
1046 } 1109 }
1047 #endif 1110 #endif
1048 1111
1049 #endif // OFFICIAL_BUILD 1112 #endif // OFFICIAL_BUILD
1050 1113
1051 return false; 1114 return false;
1052 } 1115 }
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