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

Unified Diff: chrome/browser/chromeos/login/screens/network_screen.cc

Issue 1428353002: Network Setup from Shark to Remora. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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/chromeos/login/screens/network_screen.cc
diff --git a/chrome/browser/chromeos/login/screens/network_screen.cc b/chrome/browser/chromeos/login/screens/network_screen.cc
index e6c7ca6e5481aa091cdc6590ec1caaa9cc021474..c4b0f717d2fa3f54ae7acd8fcd107e06ffaf6e4d 100644
--- a/chrome/browser/chromeos/login/screens/network_screen.cc
+++ b/chrome/browser/chromeos/login/screens/network_screen.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/chromeos/login/screens/network_screen.h"
+#include "base/json/json_writer.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/prefs/pref_service.h"
@@ -25,7 +26,9 @@
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
#include "chromeos/network/network_handler.h"
+#include "chromeos/network/network_state.h"
#include "chromeos/network/network_state_handler.h"
+#include "chromeos/network/network_util.h"
#include "content/public/browser/browser_thread.h"
#include "ui/base/l10n/l10n_util.h"
@@ -229,6 +232,42 @@ std::string NetworkScreen::GetTimezone() const {
return timezone_;
}
+std::string NetworkScreen::GetConnectedWifiNetwork() {
+ // Currently We can only transfer unsecured WiFi configuration from Shark to
+ // Remora. There is no way to get password for a secured Wifi network in Cros
+ // for security reasons.
+ const NetworkState* network_state =
+ NetworkHandler::Get()->network_state_handler()->ConnectedNetworkByType(
+ NetworkTypePattern::WiFi());
+
+ if (!network_state)
+ return std::string();
+
+ scoped_ptr<base::DictionaryValue> current_onc =
+ network_util::TranslateNetworkStateToONC(network_state);
+ std::string security;
+ current_onc->GetString(
+ onc::network_config::WifiProperty(onc::wifi::kSecurity), &security);
+ if (security.compare(onc::wifi::kSecurityNone) != 0) {
achuithb 2015/11/05 23:26:12 don't need {} Why not if (security != onc::wifi:
stevenjb 2015/11/05 23:48:25 +1
xdai1 2015/11/06 23:23:02 Done.
+ return std::string();
stevenjb 2015/11/05 23:48:25 Eventually, we could support WEP/WPA/PSK networks
xdai1 2015/11/06 23:23:02 The Hotrod shark/remora (a.k.a, controller/host) p
+ }
+
+ const std::vector<uint8_t> raw_ssid = network_state->raw_ssid();
achuithb 2015/11/05 23:26:12 Why not GetHexSsid? https://code.google.com/p/chro
stevenjb 2015/11/05 23:48:25 +1
xdai1 2015/11/06 23:23:02 Done. But it seems more complicated than just usin
stevenjb 2015/11/06 23:32:12 Sorry, the suggestion was to use network_state->Ge
+ const std::string ssid(raw_ssid.begin(), raw_ssid.end());
+
+ scoped_ptr<base::DictionaryValue> coped_onc(new base::DictionaryValue());
stevenjb 2015/11/05 23:48:25 s/coped/copied/
xdai1 2015/11/06 23:23:02 Done.
+ coped_onc->Set(onc::toplevel_config::kType,
+ new base::StringValue(onc::network_type::kWiFi));
+ coped_onc->Set(onc::network_config::WifiProperty(onc::wifi::kSSID),
+ new base::StringValue(ssid));
+ coped_onc->Set(onc::network_config::WifiProperty(onc::wifi::kSecurity),
+ new base::StringValue(security));
+
+ std::string onc_spec;
+ base::JSONWriter::Write(*coped_onc.get(), &onc_spec);
+ return onc_spec;
+}
+
void NetworkScreen::CreateNetworkFromOnc(const std::string& onc_spec) {
network_state_helper_->CreateNetworkFromOnc(onc_spec);
}

Powered by Google App Engine
This is Rietveld 408576698