Index: chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
index 1e821dcf9bdebbd7b6bee3e1f59cc4f8f31419a5..7c393f18e70a35b552c00b47f7d1303a3ee62379 100644 |
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
@@ -211,6 +211,7 @@ class NetInternalsMessageHandler |
void OnClearBrowserCache(const base::ListValue* list); |
void OnGetPrerenderInfo(const base::ListValue* list); |
void OnGetHistoricNetworkStats(const base::ListValue* list); |
+ void OnGetSessionNetworkStats(const base::ListValue* list); |
void OnGetExtensionInfo(const base::ListValue* list); |
void OnGetDataReductionProxyInfo(const base::ListValue* list); |
#if defined(OS_CHROMEOS) |
@@ -300,7 +301,6 @@ class NetInternalsMessageHandler::IOThreadImpl |
void OnHSTSQuery(const base::ListValue* list); |
void OnHSTSAdd(const base::ListValue* list); |
void OnHSTSDelete(const base::ListValue* list); |
- void OnGetSessionNetworkStats(const base::ListValue* list); |
void OnCloseIdleSockets(const base::ListValue* list); |
void OnFlushSocketPools(const base::ListValue* list); |
#if defined(OS_WIN) |
@@ -444,10 +444,6 @@ void NetInternalsMessageHandler::RegisterMessages() { |
base::Bind(&IOThreadImpl::CallbackHelper, |
&IOThreadImpl::OnHSTSDelete, proxy_)); |
web_ui()->RegisterMessageCallback( |
- "getSessionNetworkStats", |
- base::Bind(&IOThreadImpl::CallbackHelper, |
- &IOThreadImpl::OnGetSessionNetworkStats, proxy_)); |
- web_ui()->RegisterMessageCallback( |
"closeIdleSockets", |
base::Bind(&IOThreadImpl::CallbackHelper, |
&IOThreadImpl::OnCloseIdleSockets, proxy_)); |
@@ -478,6 +474,10 @@ void NetInternalsMessageHandler::RegisterMessages() { |
base::Bind(&NetInternalsMessageHandler::OnGetHistoricNetworkStats, |
base::Unretained(this))); |
web_ui()->RegisterMessageCallback( |
+ "getSessionNetworkStats", |
+ base::Bind(&NetInternalsMessageHandler::OnGetSessionNetworkStats, |
+ base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback( |
"getExtensionInfo", |
base::Bind(&NetInternalsMessageHandler::OnGetExtensionInfo, |
base::Unretained(this))); |
@@ -568,6 +568,24 @@ void NetInternalsMessageHandler::OnGetHistoricNetworkStats( |
std::move(historic_network_info)); |
} |
+void NetInternalsMessageHandler::OnGetSessionNetworkStats( |
+ const base::ListValue* list) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ std::unique_ptr<base::Value> session_network_info; |
+ Profile* profile = Profile::FromWebUI(web_ui()); |
+ DataReductionProxyChromeSettings* data_reduction_proxy_settings = |
+ DataReductionProxyChromeSettingsFactory::GetForBrowserContext(profile); |
+ if (data_reduction_proxy_settings) { |
+ data_reduction_proxy::DataReductionProxyCompressionStats* |
+ compression_stats = |
+ data_reduction_proxy_settings->data_reduction_proxy_service() |
+ ->compression_stats(); |
+ session_network_info = compression_stats->SessionNetworkStatsInfoToValue(); |
+ } |
+ SendJavascriptCommand("receivedSessionNetworkStats", |
+ std::move(session_network_info)); |
+} |
+ |
void NetInternalsMessageHandler::OnGetExtensionInfo( |
const base::ListValue* list) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
@@ -866,27 +884,6 @@ void NetInternalsMessageHandler::IOThreadImpl::OnHSTSDelete( |
transport_security_state->DeleteDynamicDataForHost(domain); |
} |
-void NetInternalsMessageHandler::IOThreadImpl::OnGetSessionNetworkStats( |
- const base::ListValue* list) { |
- DCHECK(!list); |
- net::URLRequestContext* context = |
- main_context_getter_->GetURLRequestContext(); |
- net::HttpNetworkSession* http_network_session = |
- GetHttpNetworkSession(context); |
- |
- std::unique_ptr<base::Value> network_info; |
- if (http_network_session) { |
- // TODO(mmenke): This cast is ugly. Can we get rid of it, or, better, |
- // remove DRP data from net-internals entirely? |
- data_reduction_proxy::DataReductionProxyNetworkDelegate* net_delegate = |
- static_cast<data_reduction_proxy::DataReductionProxyNetworkDelegate*>( |
- context->network_delegate()); |
- if (net_delegate) |
- network_info = net_delegate->SessionNetworkStatsInfoToValue(); |
- } |
- SendJavascriptCommand("receivedSessionNetworkStats", std::move(network_info)); |
-} |
- |
void NetInternalsMessageHandler::IOThreadImpl::OnFlushSocketPools( |
const base::ListValue* list) { |
DCHECK(!list); |