Index: chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
=================================================================== |
--- chrome/browser/ui/webui/net_internals/net_internals_ui.cc (revision 173622) |
+++ chrome/browser/ui/webui/net_internals/net_internals_ui.cc (working copy) |
@@ -36,6 +36,7 @@ |
#include "chrome/browser/net/chrome_net_log.h" |
#include "chrome/browser/net/chrome_network_delegate.h" |
#include "chrome/browser/net/connection_tester.h" |
+#include "chrome/browser/net/net_log_temp_file.h" |
#include "chrome/browser/net/url_fixer_upper.h" |
#include "chrome/browser/prerender/prerender_manager.h" |
#include "chrome/browser/prerender/prerender_manager_factory.h" |
@@ -509,6 +510,10 @@ |
void OnGetHttpCacheInfo(const ListValue* list); |
void OnGetSocketPoolInfo(const ListValue* list); |
void OnGetSessionNetworkStats(const ListValue* list); |
+ void OnGetMobileNetLogInfo(const ListValue* list); |
+ void OnStartNetLog(const ListValue* list); |
+ void OnStopNetLog(const ListValue* list); |
+ void OnSendNetLog(const ListValue* list); |
void OnCloseIdleSockets(const ListValue* list); |
void OnFlushSocketPools(const ListValue* list); |
void OnGetSpdySessionInfo(const ListValue* list); |
@@ -561,6 +566,9 @@ |
// Adds entries with the states of ongoing URL requests. |
void PrePopulateEventList(); |
+ // Calls NetLogTempFile's ProcessCommand and updates the MobileNetLogInfo. |
+ void ProcessNetLogCommand(NetLogTempFile::Command command); |
+ |
net::URLRequestContext* GetMainContext() { |
return main_context_getter_->GetURLRequestContext(); |
} |
@@ -703,6 +711,22 @@ |
base::Bind(&IOThreadImpl::CallbackHelper, |
&IOThreadImpl::OnGetSessionNetworkStats, proxy_)); |
web_ui()->RegisterMessageCallback( |
+ "getMobileNetLogInfo", |
+ base::Bind(&IOThreadImpl::CallbackHelper, |
+ &IOThreadImpl::OnGetMobileNetLogInfo, proxy_)); |
+ web_ui()->RegisterMessageCallback( |
+ "startNetLog", |
+ base::Bind(&IOThreadImpl::CallbackHelper, |
+ &IOThreadImpl::OnStartNetLog, proxy_)); |
+ web_ui()->RegisterMessageCallback( |
+ "stopNetLog", |
+ base::Bind(&IOThreadImpl::CallbackHelper, |
+ &IOThreadImpl::OnStopNetLog, proxy_)); |
+ web_ui()->RegisterMessageCallback( |
+ "sendNetLog", |
+ base::Bind(&IOThreadImpl::CallbackHelper, |
+ &IOThreadImpl::OnSendNetLog, proxy_)); |
+ web_ui()->RegisterMessageCallback( |
"closeIdleSockets", |
base::Bind(&IOThreadImpl::CallbackHelper, |
&IOThreadImpl::OnCloseIdleSockets, proxy_)); |
@@ -966,6 +990,10 @@ |
void NetInternalsMessageHandler::IOThreadImpl::Detach() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ |
+ // Cancel any in-progress requests to collect net_log into temporary file. |
+ NetLogTempFile::GetInstance()->ProcessCommand(NetLogTempFile::DO_STOP); |
+ |
// Unregister with network stack to observe events. |
if (net_log()) |
net_log()->RemoveThreadSafeObserver(this); |
@@ -1350,6 +1378,31 @@ |
http_network_session->CloseAllConnections(); |
} |
+void NetInternalsMessageHandler::IOThreadImpl::OnGetMobileNetLogInfo( |
+ const ListValue* list) { |
+ DCHECK(!list); |
+ SendJavascriptCommand("receivedMobileNetLogInfo", |
+ NetLogTempFile::GetInstance()->NetLogTempFileToValue()); |
+} |
+ |
+void NetInternalsMessageHandler::IOThreadImpl::OnStartNetLog( |
+ const ListValue* list) { |
+ DCHECK(!list); |
+ ProcessNetLogCommand(NetLogTempFile::DO_START); |
+} |
+ |
+void NetInternalsMessageHandler::IOThreadImpl::OnStopNetLog( |
+ const ListValue* list) { |
+ DCHECK(!list); |
+ ProcessNetLogCommand(NetLogTempFile::DO_STOP); |
+} |
+ |
+void NetInternalsMessageHandler::IOThreadImpl::OnSendNetLog( |
+ const ListValue* list) { |
+ DCHECK(!list); |
+ ProcessNetLogCommand(NetLogTempFile::DO_SEND); |
+} |
+ |
void NetInternalsMessageHandler::IOThreadImpl::OnCloseIdleSockets( |
const ListValue* list) { |
DCHECK(!list); |
@@ -1689,6 +1742,7 @@ |
void NetInternalsMessageHandler::IOThreadImpl::AddEntryToQueue(Value* entry) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+#if !defined(OS_IOS) |
mmenke
2012/12/27 20:43:05
This seems a somewhat random thing to exclude on i
ramant (doing other things)
2013/01/04 01:47:28
Added code in JavaScript not to store pending_entr
|
if (!pending_entries_.get()) { |
pending_entries_.reset(new ListValue()); |
BrowserThread::PostDelayedTask( |
@@ -1697,6 +1751,7 @@ |
base::TimeDelta::FromMilliseconds(kNetLogEventDelayMilliseconds)); |
} |
pending_entries_->Append(entry); |
+#endif |
} |
void NetInternalsMessageHandler::IOThreadImpl::PostPendingEntries() { |
@@ -1757,6 +1812,13 @@ |
} |
} |
+void NetInternalsMessageHandler::IOThreadImpl::ProcessNetLogCommand( |
+ NetLogTempFile::Command command) { |
+ NetLogTempFile::GetInstance()->ProcessCommand(command); |
+ SendJavascriptCommand("receivedMobileNetLogInfo", |
+ NetLogTempFile::GetInstance()->NetLogTempFileToValue()); |
+} |
+ |
} // namespace |