Chromium Code Reviews| 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 |