OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h" | 5 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <list> | 8 #include <list> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 #include "net/proxy/proxy_service.h" | 65 #include "net/proxy/proxy_service.h" |
66 #include "net/url_request/url_request_context.h" | 66 #include "net/url_request/url_request_context.h" |
67 #include "net/url_request/url_request_context_getter.h" | 67 #include "net/url_request/url_request_context_getter.h" |
68 #include "ui/base/l10n/l10n_util.h" | 68 #include "ui/base/l10n/l10n_util.h" |
69 #include "ui/base/resource/resource_bundle.h" | 69 #include "ui/base/resource/resource_bundle.h" |
70 | 70 |
71 #ifdef OS_CHROMEOS | 71 #ifdef OS_CHROMEOS |
72 #include "chrome/browser/chromeos/cros/cros_library.h" | 72 #include "chrome/browser/chromeos/cros/cros_library.h" |
73 #include "chrome/browser/chromeos/cros/network_library.h" | 73 #include "chrome/browser/chromeos/cros/network_library.h" |
74 #include "chrome/browser/chromeos/system/syslogs_provider.h" | 74 #include "chrome/browser/chromeos/system/syslogs_provider.h" |
| 75 #include "chromeos/dbus/dbus_thread_manager.h" |
| 76 #include "chromeos/dbus/debug_daemon_client.h" |
75 #endif | 77 #endif |
76 #ifdef OS_WIN | 78 #ifdef OS_WIN |
77 #include "chrome/browser/net/service_providers_win.h" | 79 #include "chrome/browser/net/service_providers_win.h" |
78 #endif | 80 #endif |
79 | 81 |
80 using content::BrowserThread; | 82 using content::BrowserThread; |
81 using content::WebContents; | 83 using content::WebContents; |
82 using content::WebUIMessageHandler; | 84 using content::WebUIMessageHandler; |
83 | 85 |
84 namespace { | 86 namespace { |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 | 182 |
181 // Javascript message handlers. | 183 // Javascript message handlers. |
182 void OnRendererReady(const ListValue* list); | 184 void OnRendererReady(const ListValue* list); |
183 void OnEnableHttpThrottling(const ListValue* list); | 185 void OnEnableHttpThrottling(const ListValue* list); |
184 void OnClearBrowserCache(const ListValue* list); | 186 void OnClearBrowserCache(const ListValue* list); |
185 void OnGetPrerenderInfo(const ListValue* list); | 187 void OnGetPrerenderInfo(const ListValue* list); |
186 #ifdef OS_CHROMEOS | 188 #ifdef OS_CHROMEOS |
187 void OnRefreshSystemLogs(const ListValue* list); | 189 void OnRefreshSystemLogs(const ListValue* list); |
188 void OnGetSystemLog(const ListValue* list); | 190 void OnGetSystemLog(const ListValue* list); |
189 void OnImportONCFile(const ListValue* list); | 191 void OnImportONCFile(const ListValue* list); |
| 192 void OnSetNetworkDebugMode(const ListValue* list); |
| 193 void OnSetNetworkDebugModeCompleted(const std::string& subsystem, |
| 194 bool succeeded); |
190 #endif | 195 #endif |
191 | 196 |
192 private: | 197 private: |
193 class IOThreadImpl; | 198 class IOThreadImpl; |
194 | 199 |
195 #ifdef OS_CHROMEOS | 200 #ifdef OS_CHROMEOS |
196 // Class that is used for getting network related ChromeOS logs. | 201 // Class that is used for getting network related ChromeOS logs. |
197 // Logs are fetched from ChromeOS libcros on user request, and only when we | 202 // Logs are fetched from ChromeOS libcros on user request, and only when we |
198 // don't yet have a copy of logs. If a copy is present, we send back data from | 203 // don't yet have a copy of logs. If a copy is present, we send back data from |
199 // it, else we save request and answer to it when we get logs from libcros. | 204 // it, else we save request and answer to it when we get logs from libcros. |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 base::Bind(&NetInternalsMessageHandler::OnRefreshSystemLogs, | 554 base::Bind(&NetInternalsMessageHandler::OnRefreshSystemLogs, |
550 base::Unretained(this))); | 555 base::Unretained(this))); |
551 web_ui()->RegisterMessageCallback( | 556 web_ui()->RegisterMessageCallback( |
552 "getSystemLog", | 557 "getSystemLog", |
553 base::Bind(&NetInternalsMessageHandler::OnGetSystemLog, | 558 base::Bind(&NetInternalsMessageHandler::OnGetSystemLog, |
554 base::Unretained(this))); | 559 base::Unretained(this))); |
555 web_ui()->RegisterMessageCallback( | 560 web_ui()->RegisterMessageCallback( |
556 "importONCFile", | 561 "importONCFile", |
557 base::Bind(&NetInternalsMessageHandler::OnImportONCFile, | 562 base::Bind(&NetInternalsMessageHandler::OnImportONCFile, |
558 base::Unretained(this))); | 563 base::Unretained(this))); |
| 564 web_ui()->RegisterMessageCallback( |
| 565 "setNetworkDebugMode", |
| 566 base::Bind(&NetInternalsMessageHandler::OnSetNetworkDebugMode, |
| 567 base::Unretained(this))); |
559 #endif | 568 #endif |
560 } | 569 } |
561 | 570 |
562 void NetInternalsMessageHandler::SendJavascriptCommand( | 571 void NetInternalsMessageHandler::SendJavascriptCommand( |
563 const std::string& command, | 572 const std::string& command, |
564 Value* arg) { | 573 Value* arg) { |
565 scoped_ptr<Value> command_value(Value::CreateStringValue(command)); | 574 scoped_ptr<Value> command_value(Value::CreateStringValue(command)); |
566 scoped_ptr<Value> value(arg); | 575 scoped_ptr<Value> value(arg); |
567 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 576 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
568 if (value.get()) { | 577 if (value.get()) { |
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1261 chromeos::NetworkUIData::ONC_SOURCE_USER_IMPORT, | 1270 chromeos::NetworkUIData::ONC_SOURCE_USER_IMPORT, |
1262 &error); | 1271 &error); |
1263 | 1272 |
1264 // Now that we've added the networks, we need to rescan them so they'll be | 1273 // Now that we've added the networks, we need to rescan them so they'll be |
1265 // available from the menu more immediately. | 1274 // available from the menu more immediately. |
1266 cros_network->RequestNetworkScan(); | 1275 cros_network->RequestNetworkScan(); |
1267 | 1276 |
1268 SendJavascriptCommand("receivedONCFileParse", | 1277 SendJavascriptCommand("receivedONCFileParse", |
1269 Value::CreateStringValue(error)); | 1278 Value::CreateStringValue(error)); |
1270 } | 1279 } |
| 1280 |
| 1281 void NetInternalsMessageHandler::OnSetNetworkDebugMode(const ListValue* list) { |
| 1282 std::string subsystem; |
| 1283 if (list->GetSize() != 1 || !list->GetString(0, &subsystem)) |
| 1284 NOTREACHED(); |
| 1285 chromeos::DBusThreadManager::Get()->GetDebugDaemonClient()-> |
| 1286 SetDebugMode( |
| 1287 subsystem, |
| 1288 base::Bind( |
| 1289 &NetInternalsMessageHandler::OnSetNetworkDebugModeCompleted, |
| 1290 AsWeakPtr(), |
| 1291 subsystem)); |
| 1292 } |
| 1293 |
| 1294 void NetInternalsMessageHandler::OnSetNetworkDebugModeCompleted( |
| 1295 const std::string& subsystem, |
| 1296 bool succeeded) { |
| 1297 std::string status; |
| 1298 if (succeeded) |
| 1299 status = "Debug mode is changed to " + subsystem; |
| 1300 else |
| 1301 status = "Failed to change debug mode to " + subsystem; |
| 1302 SendJavascriptCommand("receivedSetNetworkDebugMode", |
| 1303 Value::CreateStringValue(status)); |
| 1304 } |
| 1305 |
1271 #endif | 1306 #endif |
1272 | 1307 |
1273 void NetInternalsMessageHandler::IOThreadImpl::OnGetHttpPipeliningStatus( | 1308 void NetInternalsMessageHandler::IOThreadImpl::OnGetHttpPipeliningStatus( |
1274 const ListValue* list) { | 1309 const ListValue* list) { |
1275 DictionaryValue* status_dict = new DictionaryValue(); | 1310 DictionaryValue* status_dict = new DictionaryValue(); |
1276 | 1311 |
1277 status_dict->Set("pipelining_enabled", | 1312 status_dict->Set("pipelining_enabled", |
1278 Value::CreateBooleanValue( | 1313 Value::CreateBooleanValue( |
1279 net::HttpStreamFactory::http_pipelining_enabled())); | 1314 net::HttpStreamFactory::http_pipelining_enabled())); |
1280 | 1315 |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1581 | 1616 |
1582 NetInternalsUI::NetInternalsUI(content::WebUI* web_ui) | 1617 NetInternalsUI::NetInternalsUI(content::WebUI* web_ui) |
1583 : WebUIController(web_ui) { | 1618 : WebUIController(web_ui) { |
1584 web_ui->AddMessageHandler(new NetInternalsMessageHandler()); | 1619 web_ui->AddMessageHandler(new NetInternalsMessageHandler()); |
1585 | 1620 |
1586 // Set up the chrome://net-internals/ source. | 1621 // Set up the chrome://net-internals/ source. |
1587 Profile* profile = Profile::FromWebUI(web_ui); | 1622 Profile* profile = Profile::FromWebUI(web_ui); |
1588 profile->GetChromeURLDataManager()->AddDataSource( | 1623 profile->GetChromeURLDataManager()->AddDataSource( |
1589 CreateNetInternalsHTMLSource()); | 1624 CreateNetInternalsHTMLSource()); |
1590 } | 1625 } |
OLD | NEW |