Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4120)

Unified Diff: chrome/browser/ui/webui/net_internals/net_internals_ui.cc

Issue 11635023: First cut at UI for saving net_logs data into a temporary file on (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698