Index: chrome/browser/automation/testing_automation_provider_chromeos.cc |
diff --git a/chrome/browser/automation/testing_automation_provider_chromeos.cc b/chrome/browser/automation/testing_automation_provider_chromeos.cc |
index 02014979fcfb5877cfe7f822029eb2af0479ebb0..90cda2bb5fed6754e613a99da6e0ce729109becc 100644 |
--- a/chrome/browser/automation/testing_automation_provider_chromeos.cc |
+++ b/chrome/browser/automation/testing_automation_provider_chromeos.cc |
@@ -196,6 +196,22 @@ void TestingAutomationProvider::GetNetworkInfo(DictionaryValue* args, |
reply.SendSuccess(return_value.get()); |
} |
+void TestingAutomationProvider::NetworkScan(DictionaryValue* args, |
+ IPC::Message* reply_message) { |
+ AutomationJSONReply reply(this, reply_message); |
+ |
+ if (!CrosLibrary::Get()->EnsureLoaded()) { |
+ reply.SendError("Could not load cros library."); |
+ return; |
+ } |
+ |
+ NetworkLibrary* network_library = CrosLibrary::Get()->GetNetworkLibrary(); |
dennis_jeffrey
2011/03/24 23:48:54
Are we guaranteed that this variable will be non-N
dtu
2011/03/25 22:22:11
Yes, see stevenjb's comment.
|
+ network_library->RequestNetworkScan(); |
+ |
+ // Set up an observer (it will delete itself). |
+ new NetworkScanObserver(this, reply_message); |
+} |
+ |
void TestingAutomationProvider::ConnectToWifiNetwork( |
DictionaryValue* args, IPC::Message* reply_message) { |
AutomationJSONReply reply(this, reply_message); |
@@ -217,7 +233,7 @@ void TestingAutomationProvider::ConnectToWifiNetwork( |
chromeos::WifiNetwork* wifi = |
network_library->FindWifiNetworkByPath(service_path); |
if (!wifi) { |
- reply.SendError("Failed to connect"); |
+ reply.SendError("No network found with specified service path."); |
return; |
} |
if (!password.empty()) |
@@ -226,10 +242,36 @@ void TestingAutomationProvider::ConnectToWifiNetwork( |
wifi->SetIdentity(identity); |
if (!certpath.empty()) |
wifi->SetCertPath(certpath); |
+ |
+ // Set up an observer (it will delete itself). |
+ new NetworkConnectObserver(this, reply_message, wifi); |
stevenjb
2011/03/25 01:12:22
See my notes in NetworkConnectObserver, but we are
dtu
2011/03/25 22:22:11
Done.
|
+ |
network_library->ConnectToWifiNetwork(service_path); |
stevenjb
2011/03/25 01:12:22
It is now valid and slightly more optimal to pass
dtu
2011/03/25 22:22:11
Done.
|
+ network_library->RequestNetworkScan(); |
+} |
- // TODO(stevenjb): Observe the network library and check for a successful |
- // connection. |
+void TestingAutomationProvider::DisconnectFromWifiNetwork( |
+ DictionaryValue* args, IPC::Message* reply_message) { |
+ AutomationJSONReply reply(this, reply_message); |
+ std::string service_path; |
+ if (!args->GetString("service_path", &service_path)) { |
+ reply.SendError("Invalid or missing args"); |
dennis_jeffrey
2011/03/24 23:48:54
Put period at end of the string sentence (to be co
dtu
2011/03/25 22:22:11
Done.
|
+ return; |
+ } |
+ |
+ if (!CrosLibrary::Get()->EnsureLoaded()) { |
+ reply.SendError("Could not load cros library."); |
+ return; |
+ } |
+ |
+ NetworkLibrary* network_library = CrosLibrary::Get()->GetNetworkLibrary(); |
dennis_jeffrey
2011/03/24 23:48:54
Same comment as line 208 above.
dtu
2011/03/25 22:22:11
Same reply as line 208 above.
|
+ chromeos::WifiNetwork* wifi = |
+ network_library->FindWifiNetworkByPath(service_path); |
+ if (!wifi) { |
+ reply.SendError("No network found with specified service path."); |
+ return; |
+ } |
+ network_library->DisconnectFromWirelessNetwork(wifi); |
reply.SendSuccess(NULL); |
} |