Index: chrome/browser/dom_ui/net_internals_ui.cc |
=================================================================== |
--- chrome/browser/dom_ui/net_internals_ui.cc (revision 50259) |
+++ chrome/browser/dom_ui/net_internals_ui.cc (working copy) |
@@ -36,8 +36,6 @@ |
#include "chrome/common/net/url_request_context_getter.h" |
#include "chrome/common/url_constants.h" |
#include "grit/generated_resources.h" |
-#include "grit/net_internals_resources.h" |
-#include "grit/net_internals_resources_map.h" |
#include "net/base/escape.h" |
#include "net/base/host_resolver_impl.h" |
#include "net/base/net_errors.h" |
@@ -318,57 +316,51 @@ |
void NetInternalsHTMLSource::StartDataRequest(const std::string& path, |
bool is_off_the_record, |
int request_id) { |
+ // The provided |path| identifies a file in resources/net_internals/. |
+ std::string data_string; |
+ FilePath file_path; |
+ PathService::Get(chrome::DIR_NET_INTERNALS, &file_path); |
+ std::string filename; |
+ |
// The provided "path" may contain a fragment, or query section. We only |
// care about the path itself, and will disregard anything else. |
- std::string filename = |
- GURL(std::string("chrome://net/") + path).path().substr(1); |
+ filename = GURL(std::string("chrome://net/") + path).path().substr(1); |
+ |
if (filename.empty()) |
filename = "index.html"; |
- // The name of the files in the grd list are prefixed with the following |
- // directory: |
- std::string key("net_internals/"); |
- key += filename; |
+ file_path = file_path.AppendASCII(filename); |
- const ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
- for (size_t i = 0; i < kNetInternalsResourcesSize; ++i) { |
- if (kNetInternalsResources[i].name == key) { |
- scoped_refptr<RefCountedStaticMemory> bytes( |
- rb.LoadDataResourceBytes(kNetInternalsResources[i].value)); |
- if (bytes && bytes->front()) { |
- SendResponse(request_id, bytes); |
- return; |
- } |
- } |
+ if (!file_util::ReadFileToString(file_path, &data_string)) { |
+ LOG(WARNING) << "Could not read resource: " << file_path.value(); |
+ data_string = StringPrintf("<p style='color:red'>Failed to read file " |
+ "RESOURCES/net_internals/%s</p>", |
+ EscapeForHTML(filename).c_str()); |
+ |
+ // During the transition from old implementation to new implementation, |
+ // users may be entering the URLs for the old frontend. |
+ data_string.append( |
+ "<p>Note that the URL scheme for net-internals has changed because of " |
+ "its new implementation (bug 37421):</p>" |
+ "<ul>" |
+ "<li>chrome://net-internals/proxyservice.* → " |
+ "<a href='chrome://net-internals#proxy'>chrome://net-internals#proxy" |
+ "</a></li>" |
+ "<li>chrome://net-internals/hostresolver.* → <a href='chrome://net" |
+ "-internals#dns'>chrome://net-internals#dns</a></li>" |
+ "<li>chrome://net-internals/urlrequest.* → <a href='chrome://net-" |
+ "internals#requests'>chrome://net-internals#requests</a></li>" |
+ "<li>chrome://net-internals/ (overview for copy-pasting) → <a href" |
+ "='chrome://net-internals#data'>chrome://net-internals#data</a></li>" |
+ "<li>chrome://net-internals/view-cache/* → <a href=" |
+ "'chrome://view-http-cache'>chrome://view-http-cache</a></li>" |
+ "</ul>"); |
} |
- LOG(WARNING) << "Could not read resource: " << path; |
- std::string data_string = "<p style='color:red'>Failed to read resource"; |
- data_string.append(EscapeForHTML(filename)); |
- data_string.append("</p>"); |
- |
- // During the transition from old implementation to new implementation, |
- // users may be entering the URLs for the old frontend. |
- data_string.append( |
- "<p>Note that the URL scheme for net-internals has changed because of " |
- "its new implementation (bug 37421):</p>" |
- "<ul>" |
- "<li>chrome://net-internals/proxyservice.* → " |
- "<a href='chrome://net-internals#proxy'>chrome://net-internals#proxy" |
- "</a></li>" |
- "<li>chrome://net-internals/hostresolver.* → <a href='chrome://net" |
- "-internals#dns'>chrome://net-internals#dns</a></li>" |
- "<li>chrome://net-internals/urlrequest.* → <a href='chrome://net-" |
- "internals#requests'>chrome://net-internals#requests</a></li>" |
- "<li>chrome://net-internals/ (overview for copy-pasting) → <a href" |
- "='chrome://net-internals#data'>chrome://net-internals#data</a></li>" |
- "<li>chrome://net-internals/view-cache/* → <a href=" |
- "'chrome://view-http-cache'>chrome://view-http-cache</a></li>" |
- "</ul>"); |
- |
scoped_refptr<RefCountedBytes> bytes(new RefCountedBytes); |
bytes->data.resize(data_string.size()); |
std::copy(data_string.begin(), data_string.end(), bytes->data.begin()); |
+ |
SendResponse(request_id, bytes); |
} |