| OLD | NEW |
| 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 <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 #include "chrome/browser/dom_ui/chrome_url_data_manager.h" | 25 #include "chrome/browser/dom_ui/chrome_url_data_manager.h" |
| 26 #include "chrome/browser/io_thread.h" | 26 #include "chrome/browser/io_thread.h" |
| 27 #include "chrome/browser/net/chrome_net_log.h" | 27 #include "chrome/browser/net/chrome_net_log.h" |
| 28 #include "chrome/browser/net/connection_tester.h" | 28 #include "chrome/browser/net/connection_tester.h" |
| 29 #include "chrome/browser/net/passive_log_collector.h" | 29 #include "chrome/browser/net/passive_log_collector.h" |
| 30 #include "chrome/browser/net/url_fixer_upper.h" | 30 #include "chrome/browser/net/url_fixer_upper.h" |
| 31 #include "chrome/browser/platform_util.h" | 31 #include "chrome/browser/platform_util.h" |
| 32 #include "chrome/browser/profiles/profile.h" | 32 #include "chrome/browser/profiles/profile.h" |
| 33 #include "chrome/common/chrome_paths.h" | 33 #include "chrome/common/chrome_paths.h" |
| 34 #include "chrome/common/chrome_version_info.h" | 34 #include "chrome/common/chrome_version_info.h" |
| 35 #include "chrome/common/jstemplate_builder.h" |
| 35 #include "chrome/common/net/url_request_context_getter.h" | 36 #include "chrome/common/net/url_request_context_getter.h" |
| 36 #include "chrome/common/url_constants.h" | 37 #include "chrome/common/url_constants.h" |
| 37 #include "grit/generated_resources.h" | 38 #include "grit/generated_resources.h" |
| 38 #include "grit/net_internals_resources.h" | 39 #include "grit/net_internals_resources.h" |
| 39 #include "net/base/escape.h" | 40 #include "net/base/escape.h" |
| 40 #include "net/base/host_resolver_impl.h" | 41 #include "net/base/host_resolver_impl.h" |
| 41 #include "net/base/net_errors.h" | 42 #include "net/base/net_errors.h" |
| 42 #include "net/base/net_util.h" | 43 #include "net/base/net_util.h" |
| 43 #include "net/base/sys_addrinfo.h" | 44 #include "net/base/sys_addrinfo.h" |
| 44 #include "net/disk_cache/disk_cache.h" | 45 #include "net/disk_cache/disk_cache.h" |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 // | 313 // |
| 313 //////////////////////////////////////////////////////////////////////////////// | 314 //////////////////////////////////////////////////////////////////////////////// |
| 314 | 315 |
| 315 NetInternalsHTMLSource::NetInternalsHTMLSource() | 316 NetInternalsHTMLSource::NetInternalsHTMLSource() |
| 316 : DataSource(chrome::kChromeUINetInternalsHost, MessageLoop::current()) { | 317 : DataSource(chrome::kChromeUINetInternalsHost, MessageLoop::current()) { |
| 317 } | 318 } |
| 318 | 319 |
| 319 void NetInternalsHTMLSource::StartDataRequest(const std::string& path, | 320 void NetInternalsHTMLSource::StartDataRequest(const std::string& path, |
| 320 bool is_off_the_record, | 321 bool is_off_the_record, |
| 321 int request_id) { | 322 int request_id) { |
| 323 DictionaryValue localized_strings; |
| 324 SetFontAndTextDirection(&localized_strings); |
| 325 |
| 322 // The provided "path" may contain a fragment, or query section. We only | 326 // The provided "path" may contain a fragment, or query section. We only |
| 323 // care about the path itself, and will disregard anything else. | 327 // care about the path itself, and will disregard anything else. |
| 324 std::string filename = | 328 std::string filename = |
| 325 GURL(std::string("chrome://net/") + path).path().substr(1); | 329 GURL(std::string("chrome://net/") + path).path().substr(1); |
| 326 | 330 |
| 327 // The source for the net internals page is flattened during compilation, so | 331 // The source for the net internals page is flattened during compilation, so |
| 328 // the only resource that should legitimately be requested is the main file. | 332 // the only resource that should legitimately be requested is the main file. |
| 329 // Note that users can type anything into the address bar, though, so we must | 333 // Note that users can type anything into the address bar, though, so we must |
| 330 // handle arbitrary input. | 334 // handle arbitrary input. |
| 331 if (filename.empty() || filename == "index.html") { | 335 if (filename.empty() || filename == "index.html") { |
| 332 scoped_refptr<RefCountedStaticMemory> bytes( | 336 base::StringPiece html( |
| 333 ResourceBundle::GetSharedInstance().LoadDataResourceBytes( | 337 ResourceBundle::GetSharedInstance().GetRawDataResource( |
| 334 IDR_NET_INTERNALS_INDEX_HTML)); | 338 IDR_NET_INTERNALS_INDEX_HTML)); |
| 335 if (bytes && bytes->front()) { | 339 std::string full_html(html.data(), html.size()); |
| 336 SendResponse(request_id, bytes); | 340 jstemplate_builder::AppendJsonHtml(&localized_strings, &full_html); |
| 337 return; | 341 jstemplate_builder::AppendI18nTemplateSourceHtml(&full_html); |
| 338 } | 342 jstemplate_builder::AppendI18nTemplateProcessHtml(&full_html); |
| 343 jstemplate_builder::AppendJsTemplateSourceHtml(&full_html); |
| 344 |
| 345 scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes); |
| 346 html_bytes->data.resize(full_html.size()); |
| 347 std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin()); |
| 348 SendResponse(request_id, html_bytes); |
| 349 return; |
| 339 } | 350 } |
| 340 | 351 |
| 341 const std::string data_string("<p style='color:red'>Failed to read resource" + | 352 const std::string data_string("<p style='color:red'>Failed to read resource" + |
| 342 EscapeForHTML(filename) + "</p>"); | 353 EscapeForHTML(filename) + "</p>"); |
| 343 scoped_refptr<RefCountedBytes> bytes(new RefCountedBytes); | 354 scoped_refptr<RefCountedBytes> bytes(new RefCountedBytes); |
| 344 bytes->data.resize(data_string.size()); | 355 bytes->data.resize(data_string.size()); |
| 345 std::copy(data_string.begin(), data_string.end(), bytes->data.begin()); | 356 std::copy(data_string.begin(), data_string.end(), bytes->data.begin()); |
| 346 SendResponse(request_id, bytes); | 357 SendResponse(request_id, bytes); |
| 347 } | 358 } |
| 348 | 359 |
| (...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1024 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource(); | 1035 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource(); |
| 1025 | 1036 |
| 1026 // Set up the chrome://net-internals/ source. | 1037 // Set up the chrome://net-internals/ source. |
| 1027 BrowserThread::PostTask( | 1038 BrowserThread::PostTask( |
| 1028 BrowserThread::IO, FROM_HERE, | 1039 BrowserThread::IO, FROM_HERE, |
| 1029 NewRunnableMethod( | 1040 NewRunnableMethod( |
| 1030 Singleton<ChromeURLDataManager>::get(), | 1041 Singleton<ChromeURLDataManager>::get(), |
| 1031 &ChromeURLDataManager::AddDataSource, | 1042 &ChromeURLDataManager::AddDataSource, |
| 1032 make_scoped_refptr(html_source))); | 1043 make_scoped_refptr(html_source))); |
| 1033 } | 1044 } |
| OLD | NEW |