OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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> |
11 | 11 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 | 54 |
55 namespace { | 55 namespace { |
56 | 56 |
57 // Delay between when an event occurs and when it is passed to the Javascript | 57 // Delay between when an event occurs and when it is passed to the Javascript |
58 // page. All events that occur during this period are grouped together and | 58 // page. All events that occur during this period are grouped together and |
59 // sent to the page at once, which reduces context switching and CPU usage. | 59 // sent to the page at once, which reduces context switching and CPU usage. |
60 const int kNetLogEventDelayMilliseconds = 100; | 60 const int kNetLogEventDelayMilliseconds = 100; |
61 | 61 |
62 // Returns the HostCache for |context|'s primary HostResolver, or NULL if | 62 // Returns the HostCache for |context|'s primary HostResolver, or NULL if |
63 // there is none. | 63 // there is none. |
64 net::HostCache* GetHostResolverCache(URLRequestContext* context) { | 64 net::HostCache* GetHostResolverCache(net::URLRequestContext* context) { |
65 net::HostResolverImpl* host_resolver_impl = | 65 net::HostResolverImpl* host_resolver_impl = |
66 context->host_resolver()->GetAsHostResolverImpl(); | 66 context->host_resolver()->GetAsHostResolverImpl(); |
67 | 67 |
68 if (!host_resolver_impl) | 68 if (!host_resolver_impl) |
69 return NULL; | 69 return NULL; |
70 | 70 |
71 return host_resolver_impl->cache(); | 71 return host_resolver_impl->cache(); |
72 } | 72 } |
73 | 73 |
74 // Returns the disk cache backend for |context| if there is one, or NULL. | 74 // Returns the disk cache backend for |context| if there is one, or NULL. |
75 disk_cache::Backend* GetDiskCacheBackend(URLRequestContext* context) { | 75 disk_cache::Backend* GetDiskCacheBackend(net::URLRequestContext* context) { |
76 if (!context->http_transaction_factory()) | 76 if (!context->http_transaction_factory()) |
77 return NULL; | 77 return NULL; |
78 | 78 |
79 net::HttpCache* http_cache = context->http_transaction_factory()->GetCache(); | 79 net::HttpCache* http_cache = context->http_transaction_factory()->GetCache(); |
80 if (!http_cache) | 80 if (!http_cache) |
81 return NULL; | 81 return NULL; |
82 | 82 |
83 return http_cache->GetCurrentBackend(); | 83 return http_cache->GetCurrentBackend(); |
84 } | 84 } |
85 | 85 |
86 // Returns the http network session for |context| if there is one. | 86 // Returns the http network session for |context| if there is one. |
87 // Otherwise, returns NULL. | 87 // Otherwise, returns NULL. |
88 net::HttpNetworkSession* GetHttpNetworkSession(URLRequestContext* context) { | 88 net::HttpNetworkSession* GetHttpNetworkSession( |
| 89 net::URLRequestContext* context) { |
89 if (!context->http_transaction_factory()) | 90 if (!context->http_transaction_factory()) |
90 return NULL; | 91 return NULL; |
91 | 92 |
92 return context->http_transaction_factory()->GetSession(); | 93 return context->http_transaction_factory()->GetSession(); |
93 } | 94 } |
94 | 95 |
95 Value* ExperimentToValue(const ConnectionTester::Experiment& experiment) { | 96 Value* ExperimentToValue(const ConnectionTester::Experiment& experiment) { |
96 DictionaryValue* dict = new DictionaryValue(); | 97 DictionaryValue* dict = new DictionaryValue(); |
97 | 98 |
98 if (experiment.url.is_valid()) | 99 if (experiment.url.is_valid()) |
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 // Register with network stack to observe events. | 685 // Register with network stack to observe events. |
685 is_observing_log_ = true; | 686 is_observing_log_ = true; |
686 ChromeNetLog::EntryList entries; | 687 ChromeNetLog::EntryList entries; |
687 io_thread_->net_log()->AddObserverAndGetAllPassivelyCapturedEvents(this, | 688 io_thread_->net_log()->AddObserverAndGetAllPassivelyCapturedEvents(this, |
688 &entries); | 689 &entries); |
689 SendPassiveLogEntries(entries); | 690 SendPassiveLogEntries(entries); |
690 } | 691 } |
691 | 692 |
692 void NetInternalsMessageHandler::IOThreadImpl::OnGetProxySettings( | 693 void NetInternalsMessageHandler::IOThreadImpl::OnGetProxySettings( |
693 const ListValue* list) { | 694 const ListValue* list) { |
694 URLRequestContext* context = context_getter_->GetURLRequestContext(); | 695 net::URLRequestContext* context = context_getter_->GetURLRequestContext(); |
695 net::ProxyService* proxy_service = context->proxy_service(); | 696 net::ProxyService* proxy_service = context->proxy_service(); |
696 | 697 |
697 DictionaryValue* dict = new DictionaryValue(); | 698 DictionaryValue* dict = new DictionaryValue(); |
698 if (proxy_service->fetched_config().is_valid()) | 699 if (proxy_service->fetched_config().is_valid()) |
699 dict->Set("original", proxy_service->fetched_config().ToValue()); | 700 dict->Set("original", proxy_service->fetched_config().ToValue()); |
700 if (proxy_service->config().is_valid()) | 701 if (proxy_service->config().is_valid()) |
701 dict->Set("effective", proxy_service->config().ToValue()); | 702 dict->Set("effective", proxy_service->config().ToValue()); |
702 | 703 |
703 CallJavascriptFunction(L"g_browser.receivedProxySettings", dict); | 704 CallJavascriptFunction(L"g_browser.receivedProxySettings", dict); |
704 } | 705 } |
705 | 706 |
706 void NetInternalsMessageHandler::IOThreadImpl::OnReloadProxySettings( | 707 void NetInternalsMessageHandler::IOThreadImpl::OnReloadProxySettings( |
707 const ListValue* list) { | 708 const ListValue* list) { |
708 URLRequestContext* context = context_getter_->GetURLRequestContext(); | 709 net::URLRequestContext* context = context_getter_->GetURLRequestContext(); |
709 context->proxy_service()->ForceReloadProxyConfig(); | 710 context->proxy_service()->ForceReloadProxyConfig(); |
710 | 711 |
711 // Cause the renderer to be notified of the new values. | 712 // Cause the renderer to be notified of the new values. |
712 OnGetProxySettings(NULL); | 713 OnGetProxySettings(NULL); |
713 } | 714 } |
714 | 715 |
715 void NetInternalsMessageHandler::IOThreadImpl::OnGetBadProxies( | 716 void NetInternalsMessageHandler::IOThreadImpl::OnGetBadProxies( |
716 const ListValue* list) { | 717 const ListValue* list) { |
717 URLRequestContext* context = context_getter_->GetURLRequestContext(); | 718 net::URLRequestContext* context = context_getter_->GetURLRequestContext(); |
718 | 719 |
719 const net::ProxyRetryInfoMap& bad_proxies_map = | 720 const net::ProxyRetryInfoMap& bad_proxies_map = |
720 context->proxy_service()->proxy_retry_info(); | 721 context->proxy_service()->proxy_retry_info(); |
721 | 722 |
722 ListValue* dict_list = new ListValue(); | 723 ListValue* dict_list = new ListValue(); |
723 | 724 |
724 for (net::ProxyRetryInfoMap::const_iterator it = bad_proxies_map.begin(); | 725 for (net::ProxyRetryInfoMap::const_iterator it = bad_proxies_map.begin(); |
725 it != bad_proxies_map.end(); ++it) { | 726 it != bad_proxies_map.end(); ++it) { |
726 const std::string& proxy_uri = it->first; | 727 const std::string& proxy_uri = it->first; |
727 const net::ProxyRetryInfo& retry_info = it->second; | 728 const net::ProxyRetryInfo& retry_info = it->second; |
728 | 729 |
729 DictionaryValue* dict = new DictionaryValue(); | 730 DictionaryValue* dict = new DictionaryValue(); |
730 dict->SetString("proxy_uri", proxy_uri); | 731 dict->SetString("proxy_uri", proxy_uri); |
731 dict->SetString("bad_until", | 732 dict->SetString("bad_until", |
732 net::NetLog::TickCountToString(retry_info.bad_until)); | 733 net::NetLog::TickCountToString(retry_info.bad_until)); |
733 | 734 |
734 dict_list->Append(dict); | 735 dict_list->Append(dict); |
735 } | 736 } |
736 | 737 |
737 CallJavascriptFunction(L"g_browser.receivedBadProxies", dict_list); | 738 CallJavascriptFunction(L"g_browser.receivedBadProxies", dict_list); |
738 } | 739 } |
739 | 740 |
740 void NetInternalsMessageHandler::IOThreadImpl::OnClearBadProxies( | 741 void NetInternalsMessageHandler::IOThreadImpl::OnClearBadProxies( |
741 const ListValue* list) { | 742 const ListValue* list) { |
742 URLRequestContext* context = context_getter_->GetURLRequestContext(); | 743 net::URLRequestContext* context = context_getter_->GetURLRequestContext(); |
743 context->proxy_service()->ClearBadProxiesCache(); | 744 context->proxy_service()->ClearBadProxiesCache(); |
744 | 745 |
745 // Cause the renderer to be notified of the new values. | 746 // Cause the renderer to be notified of the new values. |
746 OnGetBadProxies(NULL); | 747 OnGetBadProxies(NULL); |
747 } | 748 } |
748 | 749 |
749 void NetInternalsMessageHandler::IOThreadImpl::OnGetHostResolverInfo( | 750 void NetInternalsMessageHandler::IOThreadImpl::OnGetHostResolverInfo( |
750 const ListValue* list) { | 751 const ListValue* list) { |
751 URLRequestContext* context = context_getter_->GetURLRequestContext(); | 752 net::URLRequestContext* context = context_getter_->GetURLRequestContext(); |
752 net::HostResolverImpl* host_resolver_impl = | 753 net::HostResolverImpl* host_resolver_impl = |
753 context->host_resolver()->GetAsHostResolverImpl(); | 754 context->host_resolver()->GetAsHostResolverImpl(); |
754 net::HostCache* cache = GetHostResolverCache(context); | 755 net::HostCache* cache = GetHostResolverCache(context); |
755 | 756 |
756 if (!host_resolver_impl || !cache) { | 757 if (!host_resolver_impl || !cache) { |
757 CallJavascriptFunction(L"g_browser.receivedHostResolverInfo", NULL); | 758 CallJavascriptFunction(L"g_browser.receivedHostResolverInfo", NULL); |
758 return; | 759 return; |
759 } | 760 } |
760 | 761 |
761 DictionaryValue* dict = new DictionaryValue(); | 762 DictionaryValue* dict = new DictionaryValue(); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 | 824 |
824 if (cache) | 825 if (cache) |
825 cache->clear(); | 826 cache->clear(); |
826 | 827 |
827 // Cause the renderer to be notified of the new values. | 828 // Cause the renderer to be notified of the new values. |
828 OnGetHostResolverInfo(NULL); | 829 OnGetHostResolverInfo(NULL); |
829 } | 830 } |
830 | 831 |
831 void NetInternalsMessageHandler::IOThreadImpl::OnEnableIPv6( | 832 void NetInternalsMessageHandler::IOThreadImpl::OnEnableIPv6( |
832 const ListValue* list) { | 833 const ListValue* list) { |
833 URLRequestContext* context = context_getter_->GetURLRequestContext(); | 834 net::URLRequestContext* context = context_getter_->GetURLRequestContext(); |
834 net::HostResolverImpl* host_resolver_impl = | 835 net::HostResolverImpl* host_resolver_impl = |
835 context->host_resolver()->GetAsHostResolverImpl(); | 836 context->host_resolver()->GetAsHostResolverImpl(); |
836 | 837 |
837 if (host_resolver_impl) { | 838 if (host_resolver_impl) { |
838 host_resolver_impl->SetDefaultAddressFamily( | 839 host_resolver_impl->SetDefaultAddressFamily( |
839 net::ADDRESS_FAMILY_UNSPECIFIED); | 840 net::ADDRESS_FAMILY_UNSPECIFIED); |
840 } | 841 } |
841 | 842 |
842 // Cause the renderer to be notified of the new value. | 843 // Cause the renderer to be notified of the new value. |
843 OnGetHostResolverInfo(NULL); | 844 OnGetHostResolverInfo(NULL); |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1077 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource(); | 1078 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource(); |
1078 | 1079 |
1079 // Set up the chrome://net-internals/ source. | 1080 // Set up the chrome://net-internals/ source. |
1080 BrowserThread::PostTask( | 1081 BrowserThread::PostTask( |
1081 BrowserThread::IO, FROM_HERE, | 1082 BrowserThread::IO, FROM_HERE, |
1082 NewRunnableMethod( | 1083 NewRunnableMethod( |
1083 ChromeURLDataManager::GetInstance(), | 1084 ChromeURLDataManager::GetInstance(), |
1084 &ChromeURLDataManager::AddDataSource, | 1085 &ChromeURLDataManager::AddDataSource, |
1085 make_scoped_refptr(html_source))); | 1086 make_scoped_refptr(html_source))); |
1086 } | 1087 } |
OLD | NEW |