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

Side by Side Diff: chrome/browser/dom_ui/net_internals_ui.cc

Issue 2865010: Load net-internals resources from resources.pak. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: mini installer 2 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
« no previous file with comments | « base/data_pack.cc ('k') | chrome/chrome.gyp » ('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/dom_ui/net_internals_ui.h" 5 #include "chrome/browser/dom_ui/net_internals_ui.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <sstream> 8 #include <sstream>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 18 matching lines...) Expand all
29 #include "chrome/browser/net/chrome_net_log.h" 29 #include "chrome/browser/net/chrome_net_log.h"
30 #include "chrome/browser/net/connection_tester.h" 30 #include "chrome/browser/net/connection_tester.h"
31 #include "chrome/browser/net/passive_log_collector.h" 31 #include "chrome/browser/net/passive_log_collector.h"
32 #include "chrome/browser/net/url_fixer_upper.h" 32 #include "chrome/browser/net/url_fixer_upper.h"
33 #include "chrome/browser/platform_util.h" 33 #include "chrome/browser/platform_util.h"
34 #include "chrome/browser/profile.h" 34 #include "chrome/browser/profile.h"
35 #include "chrome/common/chrome_paths.h" 35 #include "chrome/common/chrome_paths.h"
36 #include "chrome/common/net/url_request_context_getter.h" 36 #include "chrome/common/net/url_request_context_getter.h"
37 #include "chrome/common/url_constants.h" 37 #include "chrome/common/url_constants.h"
38 #include "grit/generated_resources.h" 38 #include "grit/generated_resources.h"
39 #include "grit/net_internals_resources.h"
40 #include "grit/net_internals_resources_map.h"
39 #include "net/base/escape.h" 41 #include "net/base/escape.h"
40 #include "net/base/host_resolver_impl.h" 42 #include "net/base/host_resolver_impl.h"
41 #include "net/base/net_errors.h" 43 #include "net/base/net_errors.h"
42 #include "net/base/net_util.h" 44 #include "net/base/net_util.h"
43 #include "net/base/sys_addrinfo.h" 45 #include "net/base/sys_addrinfo.h"
44 #include "net/disk_cache/disk_cache.h" 46 #include "net/disk_cache/disk_cache.h"
45 #include "net/http/http_cache.h" 47 #include "net/http/http_cache.h"
46 #include "net/proxy/proxy_service.h" 48 #include "net/proxy/proxy_service.h"
47 #include "net/url_request/url_request_context.h" 49 #include "net/url_request/url_request_context.h"
48 50
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 // 311 //
310 //////////////////////////////////////////////////////////////////////////////// 312 ////////////////////////////////////////////////////////////////////////////////
311 313
312 NetInternalsHTMLSource::NetInternalsHTMLSource() 314 NetInternalsHTMLSource::NetInternalsHTMLSource()
313 : DataSource(chrome::kChromeUINetInternalsHost, MessageLoop::current()) { 315 : DataSource(chrome::kChromeUINetInternalsHost, MessageLoop::current()) {
314 } 316 }
315 317
316 void NetInternalsHTMLSource::StartDataRequest(const std::string& path, 318 void NetInternalsHTMLSource::StartDataRequest(const std::string& path,
317 bool is_off_the_record, 319 bool is_off_the_record,
318 int request_id) { 320 int request_id) {
319 // The provided |path| identifies a file in resources/net_internals/.
320 std::string data_string;
321 FilePath file_path;
322 PathService::Get(chrome::DIR_NET_INTERNALS, &file_path);
323 std::string filename;
324
325 // The provided "path" may contain a fragment, or query section. We only 321 // The provided "path" may contain a fragment, or query section. We only
326 // care about the path itself, and will disregard anything else. 322 // care about the path itself, and will disregard anything else.
327 filename = GURL(std::string("chrome://net/") + path).path().substr(1); 323 std::string filename =
328 324 GURL(std::string("chrome://net/") + path).path().substr(1);
329 if (filename.empty()) 325 if (filename.empty())
330 filename = "index.html"; 326 filename = "index.html";
331 327
332 file_path = file_path.AppendASCII(filename); 328 // The name of the files in the grd list are prefixed with the following
329 // directory:
330 std::string key("net_internals/");
331 key += filename;
333 332
334 if (!file_util::ReadFileToString(file_path, &data_string)) { 333 const ResourceBundle& rb = ResourceBundle::GetSharedInstance();
335 LOG(WARNING) << "Could not read resource: " << file_path.value(); 334 for (size_t i = 0; i < kNetInternalsResourcesSize; ++i) {
336 data_string = StringPrintf("<p style='color:red'>Failed to read file " 335 if (kNetInternalsResources[i].name == key) {
337 "RESOURCES/net_internals/%s</p>", 336 scoped_refptr<RefCountedStaticMemory> bytes(
338 EscapeForHTML(filename).c_str()); 337 rb.LoadDataResourceBytes(kNetInternalsResources[i].value));
338 if (bytes && bytes->front()) {
339 SendResponse(request_id, bytes);
340 return;
341 }
342 }
343 }
339 344
340 // During the transition from old implementation to new implementation, 345 LOG(WARNING) << "Could not read resource: " << path;
341 // users may be entering the URLs for the old frontend. 346 std::string data_string = "<p style='color:red'>Failed to read resource";
342 data_string.append( 347 data_string.append(EscapeForHTML(filename));
343 "<p>Note that the URL scheme for net-internals has changed because of " 348 data_string.append("</p>");
344 "its new implementation (bug 37421):</p>" 349
345 "<ul>" 350 // During the transition from old implementation to new implementation,
346 "<li>chrome://net-internals/proxyservice.* &rarr; " 351 // users may be entering the URLs for the old frontend.
347 "<a href='chrome://net-internals#proxy'>chrome://net-internals#proxy" 352 data_string.append(
348 "</a></li>" 353 "<p>Note that the URL scheme for net-internals has changed because of "
349 "<li>chrome://net-internals/hostresolver.* &rarr; <a href='chrome://net" 354 "its new implementation (bug 37421):</p>"
350 "-internals#dns'>chrome://net-internals#dns</a></li>" 355 "<ul>"
351 "<li>chrome://net-internals/urlrequest.* &rarr; <a href='chrome://net-" 356 "<li>chrome://net-internals/proxyservice.* &rarr; "
352 "internals#requests'>chrome://net-internals#requests</a></li>" 357 "<a href='chrome://net-internals#proxy'>chrome://net-internals#proxy"
353 "<li>chrome://net-internals/ (overview for copy-pasting) &rarr; <a href" 358 "</a></li>"
354 "='chrome://net-internals#data'>chrome://net-internals#data</a></li>" 359 "<li>chrome://net-internals/hostresolver.* &rarr; <a href='chrome://net"
355 "<li>chrome://net-internals/view-cache/* &rarr; <a href=" 360 "-internals#dns'>chrome://net-internals#dns</a></li>"
356 "'chrome://view-http-cache'>chrome://view-http-cache</a></li>" 361 "<li>chrome://net-internals/urlrequest.* &rarr; <a href='chrome://net-"
357 "</ul>"); 362 "internals#requests'>chrome://net-internals#requests</a></li>"
358 } 363 "<li>chrome://net-internals/ (overview for copy-pasting) &rarr; <a href"
364 "='chrome://net-internals#data'>chrome://net-internals#data</a></li>"
365 "<li>chrome://net-internals/view-cache/* &rarr; <a href="
366 "'chrome://view-http-cache'>chrome://view-http-cache</a></li>"
367 "</ul>");
359 368
360 scoped_refptr<RefCountedBytes> bytes(new RefCountedBytes); 369 scoped_refptr<RefCountedBytes> bytes(new RefCountedBytes);
361 bytes->data.resize(data_string.size()); 370 bytes->data.resize(data_string.size());
362 std::copy(data_string.begin(), data_string.end(), bytes->data.begin()); 371 std::copy(data_string.begin(), data_string.end(), bytes->data.begin());
363
364 SendResponse(request_id, bytes); 372 SendResponse(request_id, bytes);
365 } 373 }
366 374
367 std::string NetInternalsHTMLSource::GetMimeType(const std::string&) const { 375 std::string NetInternalsHTMLSource::GetMimeType(const std::string&) const {
368 // TODO(eroman): This is incorrect -- some of the subresources may be 376 // TODO(eroman): This is incorrect -- some of the subresources may be
369 // css/javascript. 377 // css/javascript.
370 return "text/html"; 378 return "text/html";
371 } 379 }
372 380
373 //////////////////////////////////////////////////////////////////////////////// 381 ////////////////////////////////////////////////////////////////////////////////
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource(); 916 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource();
909 917
910 // Set up the chrome://net-internals/ source. 918 // Set up the chrome://net-internals/ source.
911 ChromeThread::PostTask( 919 ChromeThread::PostTask(
912 ChromeThread::IO, FROM_HERE, 920 ChromeThread::IO, FROM_HERE,
913 NewRunnableMethod( 921 NewRunnableMethod(
914 Singleton<ChromeURLDataManager>::get(), 922 Singleton<ChromeURLDataManager>::get(),
915 &ChromeURLDataManager::AddDataSource, 923 &ChromeURLDataManager::AddDataSource,
916 make_scoped_refptr(html_source))); 924 make_scoped_refptr(html_source)));
917 } 925 }
OLDNEW
« no previous file with comments | « base/data_pack.cc ('k') | chrome/chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698