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

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: Address achuithb@'s comment. 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..57f858b69990aa71b2b90b5ed313bf69f830adcf 100644
--- a/chrome/browser/chromeos/login/screens/network_screen.cc
+++ b/chrome/browser/chromeos/login/screens/network_screen.cc
@@ -4,10 +4,12 @@
#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"
#include "base/strings/string16.h"
+#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/base/locale_util.h"
@@ -25,7 +27,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,8 +233,43 @@ std::string NetworkScreen::GetTimezone() const {
return timezone_;
}
-void NetworkScreen::CreateNetworkFromOnc(const std::string& onc_spec) {
- network_state_helper_->CreateNetworkFromOnc(onc_spec);
+void NetworkScreen::GetConnectedWifiNetwork(std::string* out_onc_spec) {
dzhioev (left Google) 2015/11/10 00:33:10 My two cents: why this method is a part of Network
+ // 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;
+
+ 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 != onc::wifi::kSecurityNone)
+ return;
+
+ const std::string hex_ssid = network_state->GetHexSsid();
+
+ scoped_ptr<base::DictionaryValue> copied_onc(new base::DictionaryValue());
+ copied_onc->Set(onc::toplevel_config::kType,
+ new base::StringValue(onc::network_type::kWiFi));
+ copied_onc->Set(onc::network_config::WifiProperty(onc::wifi::kHexSSID),
+ new base::StringValue(hex_ssid));
+ copied_onc->Set(onc::network_config::WifiProperty(onc::wifi::kSecurity),
+ new base::StringValue(security));
+ base::JSONWriter::Write(*copied_onc.get(), out_onc_spec);
+}
+
+void NetworkScreen::CreateAndConnectNetworkFromOnc(
+ const std::string& onc_spec) {
+ network_state_helper_->CreateAndConnectNetworkFromOnc(
+ onc_spec, base::Bind(&base::DoNothing),
+ base::Bind(&NetworkScreen::OnConnectNetworkFromOncFailed,
+ base::Unretained(this)));
}
void NetworkScreen::AddObserver(Observer* observer) {
@@ -398,4 +437,13 @@ void NetworkScreen::OnSystemTimezoneChanged() {
GetContextEditor().SetString(kContextKeyTimezone, current_timezone_id);
}
+void NetworkScreen::OnConnectNetworkFromOncFailed() {
+ if (!network_state_helper_->IsConnected() && view_) {
+ // Show error bubble.
+ view_->ShowError(l10n_util::GetStringFUTF16(
+ IDS_NETWORK_SELECTION_ERROR,
+ l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_OS_NAME)));
+ }
+}
+
} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/login/screens/network_screen.h ('k') | chrome/browser/chromeos/login/wizard_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698