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

Unified Diff: chrome/browser/automation/testing_automation_provider_chromeos.cc

Issue 6732040: PyAuto automation hooks: blocking wifi connect, disconnect, and network scan. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Initial commit. Created 9 years, 9 months 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/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);
}

Powered by Google App Engine
This is Rietveld 408576698