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 <sstream> | 8 #include <sstream> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 // Pass it as a string, since it may be too large to fit in an integer. | 549 // Pass it as a string, since it may be too large to fit in an integer. |
550 CallJavascriptFunction(L"g_browser.receivedTimeTickOffset", | 550 CallJavascriptFunction(L"g_browser.receivedTimeTickOffset", |
551 Value::CreateStringValue( | 551 Value::CreateStringValue( |
552 Int64ToString(tick_to_unix_time_ms))); | 552 Int64ToString(tick_to_unix_time_ms))); |
553 } | 553 } |
554 | 554 |
555 OnGetPassiveLogEntries(NULL); | 555 OnGetPassiveLogEntries(NULL); |
556 OnGetProxySettings(NULL); | 556 OnGetProxySettings(NULL); |
557 OnGetBadProxies(NULL); | 557 OnGetBadProxies(NULL); |
558 OnGetHostResolverCache(NULL); | 558 OnGetHostResolverCache(NULL); |
| 559 OnGetHttpCacheInfo(NULL); |
559 } | 560 } |
560 | 561 |
561 void NetInternalsMessageHandler::IOThreadImpl::OnGetProxySettings( | 562 void NetInternalsMessageHandler::IOThreadImpl::OnGetProxySettings( |
562 const Value* value) { | 563 const Value* value) { |
563 URLRequestContext* context = context_getter_->GetURLRequestContext(); | 564 URLRequestContext* context = context_getter_->GetURLRequestContext(); |
564 net::ProxyService* proxy_service = context->proxy_service(); | 565 net::ProxyService* proxy_service = context->proxy_service(); |
565 | 566 |
566 // TODO(eroman): send a dictionary rather than a flat string, so client can do | 567 // TODO(eroman): send a dictionary rather than a flat string, so client can do |
567 // its own presentation. | 568 // its own presentation. |
568 std::string settings_string; | 569 std::string settings_string; |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 // For example, turn "www.google.com" into "http://www.google.com". | 725 // For example, turn "www.google.com" into "http://www.google.com". |
725 GURL url(URLFixerUpper::FixupURL(UTF16ToUTF8(url_str), std::string())); | 726 GURL url(URLFixerUpper::FixupURL(UTF16ToUTF8(url_str), std::string())); |
726 | 727 |
727 connection_tester_.reset(new ConnectionTester(this)); | 728 connection_tester_.reset(new ConnectionTester(this)); |
728 connection_tester_->RunAllTests(url); | 729 connection_tester_->RunAllTests(url); |
729 } | 730 } |
730 | 731 |
731 void NetInternalsMessageHandler::IOThreadImpl::OnGetHttpCacheInfo( | 732 void NetInternalsMessageHandler::IOThreadImpl::OnGetHttpCacheInfo( |
732 const Value* value) { | 733 const Value* value) { |
733 DictionaryValue* info_dict = new DictionaryValue(); | 734 DictionaryValue* info_dict = new DictionaryValue(); |
734 ListValue* entry_keys = new ListValue(); | |
735 DictionaryValue* stats_dict = new DictionaryValue(); | 735 DictionaryValue* stats_dict = new DictionaryValue(); |
736 | 736 |
737 disk_cache::Backend* disk_cache = GetDiskCacheBackend( | 737 disk_cache::Backend* disk_cache = GetDiskCacheBackend( |
738 context_getter_->GetURLRequestContext()); | 738 context_getter_->GetURLRequestContext()); |
739 | 739 |
740 if (disk_cache) { | 740 if (disk_cache) { |
741 // Iterate over all the entries in the cache, to discover the keys. | |
742 // WARNING: this can be slow! (and will block the IO thread). | |
743 void* iter = NULL; | |
744 disk_cache::Entry* entry; | |
745 while (disk_cache->OpenNextEntry(&iter, &entry)) { | |
746 entry_keys->Append(Value::CreateStringValue(entry->GetKey())); | |
747 entry->Close(); | |
748 } | |
749 | |
750 // Extract the statistics key/value pairs from the backend. | 741 // Extract the statistics key/value pairs from the backend. |
751 std::vector<std::pair<std::string, std::string> > stats; | 742 std::vector<std::pair<std::string, std::string> > stats; |
752 disk_cache->GetStats(&stats); | 743 disk_cache->GetStats(&stats); |
753 for (size_t i = 0; i < stats.size(); ++i) { | 744 for (size_t i = 0; i < stats.size(); ++i) { |
754 stats_dict->Set(ASCIIToWide(stats[i].first), | 745 stats_dict->Set(ASCIIToWide(stats[i].first), |
755 Value::CreateStringValue(stats[i].second)); | 746 Value::CreateStringValue(stats[i].second)); |
756 } | 747 } |
757 } | 748 } |
758 | 749 |
759 info_dict->Set(L"keys", entry_keys); | |
760 info_dict->Set(L"stats", stats_dict); | 750 info_dict->Set(L"stats", stats_dict); |
761 | 751 |
762 CallJavascriptFunction(L"g_browser.receivedHttpCacheInfo", info_dict); | 752 CallJavascriptFunction(L"g_browser.receivedHttpCacheInfo", info_dict); |
763 } | 753 } |
764 | 754 |
765 void NetInternalsMessageHandler::IOThreadImpl::OnAddEntry( | 755 void NetInternalsMessageHandler::IOThreadImpl::OnAddEntry( |
766 net::NetLog::EventType type, | 756 net::NetLog::EventType type, |
767 const base::TimeTicks& time, | 757 const base::TimeTicks& time, |
768 const net::NetLog::Source& source, | 758 const net::NetLog::Source& source, |
769 net::NetLog::EventPhase phase, | 759 net::NetLog::EventPhase phase, |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
857 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource(); | 847 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource(); |
858 | 848 |
859 // Set up the chrome://net-internals/ source. | 849 // Set up the chrome://net-internals/ source. |
860 ChromeThread::PostTask( | 850 ChromeThread::PostTask( |
861 ChromeThread::IO, FROM_HERE, | 851 ChromeThread::IO, FROM_HERE, |
862 NewRunnableMethod( | 852 NewRunnableMethod( |
863 Singleton<ChromeURLDataManager>::get(), | 853 Singleton<ChromeURLDataManager>::get(), |
864 &ChromeURLDataManager::AddDataSource, | 854 &ChromeURLDataManager::AddDataSource, |
865 make_scoped_refptr(html_source))); | 855 make_scoped_refptr(html_source))); |
866 } | 856 } |
OLD | NEW |