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 4d77bf8f2cf30439ff2a6f81c66cfa5f84e1e3e7..9ccef45e7ca8b1e9161469fd3012988164edcc86 100644 |
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
@@ -72,6 +72,8 @@ |
#include "chrome/browser/chromeos/cros/cros_library.h" |
#include "chrome/browser/chromeos/cros/network_library.h" |
#include "chrome/browser/chromeos/system/syslogs_provider.h" |
+#include "chromeos/dbus/dbus_thread_manager.h" |
+#include "chromeos/dbus/debug_daemon_client.h" |
#endif |
#ifdef OS_WIN |
#include "chrome/browser/net/service_providers_win.h" |
@@ -187,6 +189,9 @@ class NetInternalsMessageHandler |
void OnRefreshSystemLogs(const ListValue* list); |
void OnGetSystemLog(const ListValue* list); |
void OnImportONCFile(const ListValue* list); |
+ void OnSetNetworkDebugMode(const ListValue* list); |
+ void OnSetNetworkDebugModeCompleted(const std::string& subsystem, |
+ bool succeeded); |
#endif |
private: |
@@ -556,6 +561,10 @@ void NetInternalsMessageHandler::RegisterMessages() { |
"importONCFile", |
base::Bind(&NetInternalsMessageHandler::OnImportONCFile, |
base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback( |
+ "setNetworkDebugMode", |
+ base::Bind(&NetInternalsMessageHandler::OnSetNetworkDebugMode, |
+ base::Unretained(this))); |
#endif |
} |
@@ -1268,6 +1277,32 @@ void NetInternalsMessageHandler::OnImportONCFile(const ListValue* list) { |
SendJavascriptCommand("receivedONCFileParse", |
Value::CreateStringValue(error)); |
} |
+ |
+void NetInternalsMessageHandler::OnSetNetworkDebugMode(const ListValue* list) { |
+ std::string subsystem; |
+ if (list->GetSize() != 1 || !list->GetString(0, &subsystem)) |
+ NOTREACHED(); |
+ chromeos::DBusThreadManager::Get()->GetDebugDaemonClient()-> |
+ SetDebugMode( |
+ subsystem, |
+ base::Bind( |
+ &NetInternalsMessageHandler::OnSetNetworkDebugModeCompleted, |
+ AsWeakPtr(), |
+ subsystem)); |
+} |
+ |
+void NetInternalsMessageHandler::OnSetNetworkDebugModeCompleted( |
+ const std::string& subsystem, |
+ bool succeeded) { |
+ std::string status; |
+ if (succeeded) |
+ status = "Debug mode is changed to " + subsystem; |
+ else |
+ status = "Failed to change debug mode to " + subsystem; |
+ SendJavascriptCommand("receivedSetNetworkDebugMode", |
+ Value::CreateStringValue(status)); |
+} |
+ |
#endif |
void NetInternalsMessageHandler::IOThreadImpl::OnGetHttpPipeliningStatus( |