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

Side by Side 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 unified diff | Download patch
OLDNEW
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/chromeos/login/screens/network_screen.h" 5 #include "chrome/browser/chromeos/login/screens/network_screen.h"
6 6
7 #include "base/json/json_writer.h"
7 #include "base/location.h" 8 #include "base/location.h"
8 #include "base/logging.h" 9 #include "base/logging.h"
9 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
10 #include "base/strings/string16.h" 11 #include "base/strings/string16.h"
12 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
12 #include "chrome/browser/browser_process.h" 14 #include "chrome/browser/browser_process.h"
13 #include "chrome/browser/chromeos/base/locale_util.h" 15 #include "chrome/browser/chromeos/base/locale_util.h"
14 #include "chrome/browser/chromeos/customization/customization_document.h" 16 #include "chrome/browser/chromeos/customization/customization_document.h"
15 #include "chrome/browser/chromeos/login/help_app_launcher.h" 17 #include "chrome/browser/chromeos/login/help_app_launcher.h"
16 #include "chrome/browser/chromeos/login/helper.h" 18 #include "chrome/browser/chromeos/login/helper.h"
17 #include "chrome/browser/chromeos/login/screen_manager.h" 19 #include "chrome/browser/chromeos/login/screen_manager.h"
18 #include "chrome/browser/chromeos/login/screens/base_screen_delegate.h" 20 #include "chrome/browser/chromeos/login/screens/base_screen_delegate.h"
19 #include "chrome/browser/chromeos/login/screens/network_view.h" 21 #include "chrome/browser/chromeos/login/screens/network_view.h"
20 #include "chrome/browser/chromeos/login/ui/input_events_blocker.h" 22 #include "chrome/browser/chromeos/login/ui/input_events_blocker.h"
21 #include "chrome/browser/chromeos/login/wizard_controller.h" 23 #include "chrome/browser/chromeos/login/wizard_controller.h"
22 #include "chrome/browser/profiles/profile_manager.h" 24 #include "chrome/browser/profiles/profile_manager.h"
23 #include "chrome/browser/ui/webui/chromeos/login/l10n_util.h" 25 #include "chrome/browser/ui/webui/chromeos/login/l10n_util.h"
24 #include "chrome/common/pref_names.h" 26 #include "chrome/common/pref_names.h"
25 #include "chrome/grit/chromium_strings.h" 27 #include "chrome/grit/chromium_strings.h"
26 #include "chrome/grit/generated_resources.h" 28 #include "chrome/grit/generated_resources.h"
27 #include "chromeos/network/network_handler.h" 29 #include "chromeos/network/network_handler.h"
30 #include "chromeos/network/network_state.h"
28 #include "chromeos/network/network_state_handler.h" 31 #include "chromeos/network/network_state_handler.h"
32 #include "chromeos/network/network_util.h"
29 #include "content/public/browser/browser_thread.h" 33 #include "content/public/browser/browser_thread.h"
30 #include "ui/base/l10n/l10n_util.h" 34 #include "ui/base/l10n/l10n_util.h"
31 35
32 namespace { 36 namespace {
33 37
34 // Time in seconds for connection timeout. 38 // Time in seconds for connection timeout.
35 const int kConnectionTimeoutSec = 40; 39 const int kConnectionTimeoutSec = 40;
36 40
37 } // namespace 41 } // namespace
38 42
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 if (current_timezone_id == timezone_id) 226 if (current_timezone_id == timezone_id)
223 return; 227 return;
224 timezone_ = timezone_id; 228 timezone_ = timezone_id;
225 CrosSettings::Get()->SetString(kSystemTimezone, timezone_id); 229 CrosSettings::Get()->SetString(kSystemTimezone, timezone_id);
226 } 230 }
227 231
228 std::string NetworkScreen::GetTimezone() const { 232 std::string NetworkScreen::GetTimezone() const {
229 return timezone_; 233 return timezone_;
230 } 234 }
231 235
232 void NetworkScreen::CreateNetworkFromOnc(const std::string& onc_spec) { 236 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
233 network_state_helper_->CreateNetworkFromOnc(onc_spec); 237 // Currently We can only transfer unsecured WiFi configuration from shark to
238 // remora. There is no way to get password for a secured Wifi network in Cros
239 // for security reasons.
240 const NetworkState* network_state =
241 NetworkHandler::Get()->network_state_handler()->ConnectedNetworkByType(
242 NetworkTypePattern::WiFi());
243
244 if (!network_state)
245 return;
246
247 scoped_ptr<base::DictionaryValue> current_onc =
248 network_util::TranslateNetworkStateToONC(network_state);
249 std::string security;
250 current_onc->GetString(
251 onc::network_config::WifiProperty(onc::wifi::kSecurity), &security);
252 if (security != onc::wifi::kSecurityNone)
253 return;
254
255 const std::string hex_ssid = network_state->GetHexSsid();
256
257 scoped_ptr<base::DictionaryValue> copied_onc(new base::DictionaryValue());
258 copied_onc->Set(onc::toplevel_config::kType,
259 new base::StringValue(onc::network_type::kWiFi));
260 copied_onc->Set(onc::network_config::WifiProperty(onc::wifi::kHexSSID),
261 new base::StringValue(hex_ssid));
262 copied_onc->Set(onc::network_config::WifiProperty(onc::wifi::kSecurity),
263 new base::StringValue(security));
264 base::JSONWriter::Write(*copied_onc.get(), out_onc_spec);
265 }
266
267 void NetworkScreen::CreateAndConnectNetworkFromOnc(
268 const std::string& onc_spec) {
269 network_state_helper_->CreateAndConnectNetworkFromOnc(
270 onc_spec, base::Bind(&base::DoNothing),
271 base::Bind(&NetworkScreen::OnConnectNetworkFromOncFailed,
272 base::Unretained(this)));
234 } 273 }
235 274
236 void NetworkScreen::AddObserver(Observer* observer) { 275 void NetworkScreen::AddObserver(Observer* observer) {
237 if (observer) 276 if (observer)
238 observers_.AddObserver(observer); 277 observers_.AddObserver(observer);
239 } 278 }
240 279
241 void NetworkScreen::RemoveObserver(Observer* observer) { 280 void NetworkScreen::RemoveObserver(Observer* observer) {
242 if (observer) 281 if (observer)
243 observers_.RemoveObserver(observer); 282 observers_.RemoveObserver(observer);
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 view_->ReloadLocalizedContent(); 430 view_->ReloadLocalizedContent();
392 FOR_EACH_OBSERVER(Observer, observers_, OnLanguageListReloaded()); 431 FOR_EACH_OBSERVER(Observer, observers_, OnLanguageListReloaded());
393 } 432 }
394 433
395 void NetworkScreen::OnSystemTimezoneChanged() { 434 void NetworkScreen::OnSystemTimezoneChanged() {
396 std::string current_timezone_id; 435 std::string current_timezone_id;
397 CrosSettings::Get()->GetString(kSystemTimezone, &current_timezone_id); 436 CrosSettings::Get()->GetString(kSystemTimezone, &current_timezone_id);
398 GetContextEditor().SetString(kContextKeyTimezone, current_timezone_id); 437 GetContextEditor().SetString(kContextKeyTimezone, current_timezone_id);
399 } 438 }
400 439
440 void NetworkScreen::OnConnectNetworkFromOncFailed() {
441 if (!network_state_helper_->IsConnected() && view_) {
442 // Show error bubble.
443 view_->ShowError(l10n_util::GetStringFUTF16(
444 IDS_NETWORK_SELECTION_ERROR,
445 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_OS_NAME)));
446 }
447 }
448
401 } // namespace chromeos 449 } // namespace chromeos
OLDNEW
« 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