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

Side by Side Diff: chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc

Issue 544173013: Make network settings functions more closely match networkingPrivate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_279351_internet_options_10c
Patch Set: . Created 6 years, 3 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 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/ui/webui/options/chromeos/internet_options_handler.h" 5 #include "chrome/browser/ui/webui/options/chromeos/internet_options_handler.h"
6 6
7 #include <ctype.h> 7 #include <ctype.h>
8 8
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 #include "ui/gfx/image/image_skia.h" 59 #include "ui/gfx/image/image_skia.h"
60 60
61 namespace chromeos { 61 namespace chromeos {
62 namespace options { 62 namespace options {
63 63
64 namespace { 64 namespace {
65 65
66 // Keys for the network description dictionary passed to the web ui. Make sure 66 // Keys for the network description dictionary passed to the web ui. Make sure
67 // to keep the strings in sync with what the JavaScript side uses. 67 // to keep the strings in sync with what the JavaScript side uses.
68 const char kNetworkInfoKeyIconURL[] = "iconURL"; 68 const char kNetworkInfoKeyIconURL[] = "iconURL";
69 const char kNetworkInfoKeyServicePath[] = "servicePath";
70 const char kNetworkInfoKeyPolicyManaged[] = "policyManaged"; 69 const char kNetworkInfoKeyPolicyManaged[] = "policyManaged";
71 70
72 // These are types of name server selections from the web ui. 71 // These are types of name server selections from the web ui.
73 const char kNameServerTypeAutomatic[] = "automatic"; 72 const char kNameServerTypeAutomatic[] = "automatic";
74 const char kNameServerTypeGoogle[] = "google"; 73 const char kNameServerTypeGoogle[] = "google";
75 74
76 // Google public name servers (DNS). 75 // Google public name servers (DNS).
77 const char kGoogleNameServers[] = "8.8.4.4,8.8.8.8"; 76 const char kGoogleNameServers[] = "8.8.4.4,8.8.8.8";
78 77
79 // Functions we call in JavaScript. 78 // Functions we call in JavaScript.
80 const char kRefreshNetworkDataFunction[] = 79 const char kRefreshNetworkDataFunction[] =
81 "options.network.NetworkList.refreshNetworkData"; 80 "options.network.NetworkList.refreshNetworkData";
82 const char kSetDefaultNetworkIconsFunction[] = 81 const char kSetDefaultNetworkIconsFunction[] =
83 "options.network.NetworkList.setDefaultNetworkIcons"; 82 "options.network.NetworkList.setDefaultNetworkIcons";
83 const char kSendNetworkDetailsFunction[] =
84 "options.internet.DetailsInternetPage.sendNetworkDetails";
84 const char kShowDetailedInfoFunction[] = 85 const char kShowDetailedInfoFunction[] =
85 "options.internet.DetailsInternetPage.showDetailedInfo"; 86 "options.internet.DetailsInternetPage.showDetailedInfo";
86 const char kUpdateConnectionDataFunction[] = 87 const char kUpdateConnectionDataFunction[] =
87 "options.internet.DetailsInternetPage.updateConnectionData"; 88 "options.internet.DetailsInternetPage.updateConnectionData";
88 const char kUpdateCarrierFunction[] = 89 const char kUpdateCarrierFunction[] =
89 "options.internet.DetailsInternetPage.updateCarrier"; 90 "options.internet.DetailsInternetPage.updateCarrier";
90 91
91 // These are used to register message handlers with JavaScript. 92 // These are used to register message handlers with JavaScript.
92 const char kChangePinMessage[] = "changePin";
93 const char kDisableCellularMessage[] = "disableCellular";
94 const char kDisableWifiMessage[] = "disableWifi";
95 const char kDisableWimaxMessage[] = "disableWimax";
96 const char kEnableCellularMessage[] = "enableCellular";
97 const char kEnableWifiMessage[] = "enableWifi";
98 const char kEnableWimaxMessage[] = "enableWimax";
99 const char kNetworkCommandMessage[] = "networkCommand"; 93 const char kNetworkCommandMessage[] = "networkCommand";
100 const char kRefreshNetworksMessage[] = "refreshNetworks";
101 const char kSetApnMessage[] = "setApn"; 94 const char kSetApnMessage[] = "setApn";
102 const char kSetAutoConnectMessage[] = "setAutoConnect"; 95 const char kSetAutoConnectMessage[] = "setAutoConnect";
103 const char kSetCarrierMessage[] = "setCarrier"; 96 const char kSetCarrierMessage[] = "setCarrier";
104 const char kSetIPConfigMessage[] = "setIPConfig"; 97 const char kSetIPConfigMessage[] = "setIPConfig";
105 const char kSetPreferNetworkMessage[] = "setPreferNetwork"; 98 const char kSetPreferNetworkMessage[] = "setPreferNetwork";
106 const char kSetServerHostname[] = "setServerHostname"; 99 const char kSetServerHostname[] = "setServerHostname";
107 const char kSetSimCardLockMessage[] = "setSimCardLock";
108 const char kShowMorePlanInfoMessage[] = "showMorePlanInfo"; 100 const char kShowMorePlanInfoMessage[] = "showMorePlanInfo";
101 const char kSimOperationMessage[] = "simOperation";
102
103 // The following messages match the signature and will be replaced with
104 // networkingPrivate methods:
armansito 2014/09/16 16:40:42 Add TODO?
stevenjb 2014/09/16 17:32:58 Done.
105 const char kDisableNetworkTypeMessage[] = "disableNetworkType";
106 const char kEnableNetworkTypeMessage[] = "enableNetworkType";
107 const char kGetManagedPropertiesMessage[] = "getManagedProperties";
108 const char kRequestNetworkScanMessage[] = "requestNetworkScan";
109 const char kStartConnectMessage[] = "startConnect";
110 const char kStartDisconnectMessage[] = "startDisconnect";
109 111
110 // These are strings used to communicate with JavaScript. 112 // These are strings used to communicate with JavaScript.
111 const char kTagActivate[] = "activate"; 113 const char kTagActivate[] = "activate";
112 const char kTagAddConnection[] = "add"; 114 const char kTagAddConnection[] = "add";
113 const char kTagCarrierSelectFlag[] = "showCarrierSelect"; 115 const char kTagCarrierSelectFlag[] = "showCarrierSelect";
114 const char kTagCellularAvailable[] = "cellularAvailable"; 116 const char kTagCellularAvailable[] = "cellularAvailable";
115 const char kTagCellularEnabled[] = "cellularEnabled"; 117 const char kTagCellularEnabled[] = "cellularEnabled";
118 const char kTagCellularSimAbsent[] = "cellularSimAbsent";
119 const char kTagCellularSimLockType[] = "cellularSimLockType";
116 const char kTagCellularSupportsScan[] = "cellularSupportsScan"; 120 const char kTagCellularSupportsScan[] = "cellularSupportsScan";
117 const char kTagConfigure[] = "configure"; 121 const char kTagConfigure[] = "configure";
118 const char kTagConnect[] = "connect";
119 const char kTagDeviceConnected[] = "deviceConnected";
120 const char kTagDisconnect[] = "disconnect";
121 const char kTagErrorMessage[] = "errorMessage";
122 const char kTagForget[] = "forget"; 122 const char kTagForget[] = "forget";
123 const char kTagOptions[] = "options";
124 const char kTagRememberedList[] = "rememberedList"; 123 const char kTagRememberedList[] = "rememberedList";
124 const char kTagShowDetails[] = "showDetails";
125 const char kTagShowViewAccountButton[] = "showViewAccountButton"; 125 const char kTagShowViewAccountButton[] = "showViewAccountButton";
126 const char kTagSimOpChangePin[] = "changePin";
127 const char kTagSimOpConfigure[] = "configure";
128 const char kTagSimOpSetLocked[] = "setLocked";
129 const char kTagSimOpSetUnlocked[] = "setUnlocked";
130 const char kTagSimOpUnlock[] = "unlock";
126 const char kTagTrue[] = "true"; 131 const char kTagTrue[] = "true";
127 const char kTagVpnList[] = "vpnList"; 132 const char kTagVpnList[] = "vpnList";
128 const char kTagWifiAvailable[] = "wifiAvailable"; 133 const char kTagWifiAvailable[] = "wifiAvailable";
129 const char kTagWifiEnabled[] = "wifiEnabled"; 134 const char kTagWifiEnabled[] = "wifiEnabled";
130 const char kTagWimaxAvailable[] = "wimaxAvailable"; 135 const char kTagWimaxAvailable[] = "wimaxAvailable";
131 const char kTagWimaxEnabled[] = "wimaxEnabled"; 136 const char kTagWimaxEnabled[] = "wimaxEnabled";
132 const char kTagWiredList[] = "wiredList"; 137 const char kTagWiredList[] = "wiredList";
133 const char kTagWirelessList[] = "wirelessList"; 138 const char kTagWirelessList[] = "wirelessList";
134 139
140 // Pseudo-ONC chrome specific properties appended to the ONC dictionary.
141 const char kTagErrorMessage[] = "errorMessage";
142 const char kNetworkInfoKeyServicePath[] = "servicePath";
143 const char kNetworkInfoKeyGUID[] = "GUID";
144
135 const int kPreferredPriority = 1; 145 const int kPreferredPriority = 1;
136 146
137 void ShillError(const std::string& function, 147 void ShillError(const std::string& function,
138 const std::string& error_name, 148 const std::string& error_name,
139 scoped_ptr<base::DictionaryValue> error_data) { 149 scoped_ptr<base::DictionaryValue> error_data) {
140 // UpdateConnectionData may send requests for stale services; ignore 150 // UpdateConnectionData may send requests for stale services; ignore
141 // these errors. 151 // these errors.
142 if (function == "UpdateConnectionData" && 152 if (function == "UpdateConnectionData" &&
143 error_name == network_handler::kDBusFailedError) 153 error_name == network_handler::kDBusFailedError)
144 return; 154 return;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 } 236 }
227 237
228 return true; 238 return true;
229 } 239 }
230 240
231 scoped_ptr<base::DictionaryValue> PopulateConnectionDetails( 241 scoped_ptr<base::DictionaryValue> PopulateConnectionDetails(
232 const NetworkState* network, 242 const NetworkState* network,
233 const base::DictionaryValue& onc_properties) { 243 const base::DictionaryValue& onc_properties) {
234 scoped_ptr<base::DictionaryValue> dictionary(onc_properties.DeepCopy()); 244 scoped_ptr<base::DictionaryValue> dictionary(onc_properties.DeepCopy());
235 245
246 // Append Service Path for now.
236 dictionary->SetString(kNetworkInfoKeyServicePath, network->path()); 247 dictionary->SetString(kNetworkInfoKeyServicePath, network->path());
248 // Append a Chrome specific translated error message.
237 dictionary->SetString( 249 dictionary->SetString(
238 kTagErrorMessage, 250 kTagErrorMessage,
239 ash::network_connect::ErrorString(network->error(), network->path())); 251 ash::network_connect::ErrorString(network->error(), network->path()));
240 252
241 const std::string& type = network->type();
242
243 const NetworkState* connected_network =
244 NetworkHandler::Get()->network_state_handler()->ConnectedNetworkByType(
245 NetworkTypePattern::Primitive(type));
246 dictionary->SetBoolean(kTagDeviceConnected, connected_network != NULL);
247
248 if (type == shill::kTypeCellular) {
249 dictionary->SetBoolean(
250 kTagCarrierSelectFlag,
251 CommandLine::ForCurrentProcess()
252 ->HasSwitch(chromeos::switches::kEnableCarrierSwitching));
253 dictionary->SetBoolean(kTagShowViewAccountButton,
254 ShowViewAccountButton(network));
255 }
256 return dictionary.Pass(); 253 return dictionary.Pass();
257 } 254 }
258 255
259 // Helper methods for SetIPConfigProperties 256 // Helper methods for SetIPConfigProperties
260 bool AppendPropertyKeyIfPresent(const std::string& key, 257 bool AppendPropertyKeyIfPresent(const std::string& key,
261 const base::DictionaryValue& old_properties, 258 const base::DictionaryValue& old_properties,
262 std::vector<std::string>* property_keys) { 259 std::vector<std::string>* property_keys) {
263 if (old_properties.HasKey(key)) { 260 if (old_properties.HasKey(key)) {
264 property_keys->push_back(key); 261 property_keys->push_back(key);
265 return true; 262 return true;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 dictionary); 344 dictionary);
348 NetworkHandler::Get()->network_state_handler()->RequestScan(); 345 NetworkHandler::Get()->network_state_handler()->RequestScan();
349 RefreshNetworkData(); 346 RefreshNetworkData();
350 } 347 }
351 348
352 void InternetOptionsHandler::RegisterMessages() { 349 void InternetOptionsHandler::RegisterMessages() {
353 // Setup handlers specific to this panel. 350 // Setup handlers specific to this panel.
354 web_ui()->RegisterMessageCallback(kNetworkCommandMessage, 351 web_ui()->RegisterMessageCallback(kNetworkCommandMessage,
355 base::Bind(&InternetOptionsHandler::NetworkCommandCallback, 352 base::Bind(&InternetOptionsHandler::NetworkCommandCallback,
356 base::Unretained(this))); 353 base::Unretained(this)));
357 web_ui()->RegisterMessageCallback(kRefreshNetworksMessage,
358 base::Bind(&InternetOptionsHandler::RefreshNetworksCallback,
359 base::Unretained(this)));
360 web_ui()->RegisterMessageCallback(kSetPreferNetworkMessage, 354 web_ui()->RegisterMessageCallback(kSetPreferNetworkMessage,
361 base::Bind(&InternetOptionsHandler::SetPreferNetworkCallback, 355 base::Bind(&InternetOptionsHandler::SetPreferNetworkCallback,
362 base::Unretained(this))); 356 base::Unretained(this)));
363 web_ui()->RegisterMessageCallback(kSetAutoConnectMessage, 357 web_ui()->RegisterMessageCallback(kSetAutoConnectMessage,
364 base::Bind(&InternetOptionsHandler::SetAutoConnectCallback, 358 base::Bind(&InternetOptionsHandler::SetAutoConnectCallback,
365 base::Unretained(this))); 359 base::Unretained(this)));
366 web_ui()->RegisterMessageCallback(kSetIPConfigMessage, 360 web_ui()->RegisterMessageCallback(kSetIPConfigMessage,
367 base::Bind(&InternetOptionsHandler::SetIPConfigCallback, 361 base::Bind(&InternetOptionsHandler::SetIPConfigCallback,
368 base::Unretained(this))); 362 base::Unretained(this)));
369 web_ui()->RegisterMessageCallback(kEnableWifiMessage,
370 base::Bind(&InternetOptionsHandler::EnableWifiCallback,
371 base::Unretained(this)));
372 web_ui()->RegisterMessageCallback(kDisableWifiMessage,
373 base::Bind(&InternetOptionsHandler::DisableWifiCallback,
374 base::Unretained(this)));
375 web_ui()->RegisterMessageCallback(kEnableCellularMessage,
376 base::Bind(&InternetOptionsHandler::EnableCellularCallback,
377 base::Unretained(this)));
378 web_ui()->RegisterMessageCallback(kDisableCellularMessage,
379 base::Bind(&InternetOptionsHandler::DisableCellularCallback,
380 base::Unretained(this)));
381 web_ui()->RegisterMessageCallback(kEnableWimaxMessage,
382 base::Bind(&InternetOptionsHandler::EnableWimaxCallback,
383 base::Unretained(this)));
384 web_ui()->RegisterMessageCallback(kDisableWimaxMessage,
385 base::Bind(&InternetOptionsHandler::DisableWimaxCallback,
386 base::Unretained(this)));
387 web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage, 363 web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage,
388 base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback, 364 base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback,
389 base::Unretained(this))); 365 base::Unretained(this)));
390 web_ui()->RegisterMessageCallback(kSetApnMessage, 366 web_ui()->RegisterMessageCallback(kSetApnMessage,
391 base::Bind(&InternetOptionsHandler::SetApnCallback, 367 base::Bind(&InternetOptionsHandler::SetApnCallback,
392 base::Unretained(this))); 368 base::Unretained(this)));
393 web_ui()->RegisterMessageCallback(kSetCarrierMessage, 369 web_ui()->RegisterMessageCallback(kSetCarrierMessage,
394 base::Bind(&InternetOptionsHandler::SetCarrierCallback, 370 base::Bind(&InternetOptionsHandler::SetCarrierCallback,
395 base::Unretained(this))); 371 base::Unretained(this)));
396 web_ui()->RegisterMessageCallback(kSetSimCardLockMessage, 372 web_ui()->RegisterMessageCallback(kSimOperationMessage,
397 base::Bind(&InternetOptionsHandler::SetSimCardLockCallback, 373 base::Bind(&InternetOptionsHandler::SimOperationCallback,
398 base::Unretained(this)));
399 web_ui()->RegisterMessageCallback(kChangePinMessage,
400 base::Bind(&InternetOptionsHandler::ChangePinCallback,
401 base::Unretained(this))); 374 base::Unretained(this)));
402 web_ui()->RegisterMessageCallback(kSetServerHostname, 375 web_ui()->RegisterMessageCallback(kSetServerHostname,
403 base::Bind(&InternetOptionsHandler::SetServerHostnameCallback, 376 base::Bind(&InternetOptionsHandler::SetServerHostnameCallback,
404 base::Unretained(this))); 377 base::Unretained(this)));
405 }
406 378
407 void InternetOptionsHandler::EnableWifiCallback(const base::ListValue* args) { 379 // networkingPrivate methods
408 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( 380 web_ui()->RegisterMessageCallback(kDisableNetworkTypeMessage,
409 NetworkTypePattern::WiFi(), true, 381 base::Bind(&InternetOptionsHandler::DisableNetworkTypeCallback,
410 base::Bind(&ShillError, "EnableWifiCallback")); 382 base::Unretained(this)));
411 } 383 web_ui()->RegisterMessageCallback(kEnableNetworkTypeMessage,
412 384 base::Bind(&InternetOptionsHandler::EnableNetworkTypeCallback,
413 void InternetOptionsHandler::DisableWifiCallback(const base::ListValue* args) { 385 base::Unretained(this)));
414 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( 386 web_ui()->RegisterMessageCallback(kGetManagedPropertiesMessage,
415 NetworkTypePattern::WiFi(), false, 387 base::Bind(&InternetOptionsHandler::GetManagedPropertiesCallback,
416 base::Bind(&ShillError, "DisableWifiCallback")); 388 base::Unretained(this)));
417 } 389 web_ui()->RegisterMessageCallback(kRequestNetworkScanMessage,
418 390 base::Bind(&InternetOptionsHandler::RequestNetworkScanCallback,
419 void InternetOptionsHandler::EnableCellularCallback( 391 base::Unretained(this)));
420 const base::ListValue* args) { 392 web_ui()->RegisterMessageCallback(kStartConnectMessage,
421 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); 393 base::Bind(&InternetOptionsHandler::StartConnectCallback,
422 const DeviceState* device = 394 base::Unretained(this)));
423 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); 395 web_ui()->RegisterMessageCallback(kStartDisconnectMessage,
424 if (!device) { 396 base::Bind(&InternetOptionsHandler::StartDisconnectCallback,
425 LOG(ERROR) << "Mobile device not found."; 397 base::Unretained(this)));
426 return;
427 }
428 if (!device->sim_lock_type().empty()) {
429 SimDialogDelegate::ShowDialog(GetNativeWindow(),
430 SimDialogDelegate::SIM_DIALOG_UNLOCK);
431 return;
432 }
433 if (!handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) {
434 handler->SetTechnologyEnabled(
435 NetworkTypePattern::Cellular(), true,
436 base::Bind(&ShillError, "EnableCellularCallback"));
437 return;
438 }
439 if (device->IsSimAbsent()) {
440 mobile_config_ui::DisplayConfigDialog();
441 return;
442 }
443 LOG(ERROR) << "EnableCellularCallback called for enabled mobile device";
444 }
445
446 void InternetOptionsHandler::DisableCellularCallback(
447 const base::ListValue* args) {
448 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled(
449 NetworkTypePattern::Mobile(), false,
450 base::Bind(&ShillError, "DisableCellularCallback"));
451 }
452
453 void InternetOptionsHandler::EnableWimaxCallback(const base::ListValue* args) {
454 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled(
455 NetworkTypePattern::Wimax(), true,
456 base::Bind(&ShillError, "EnableWimaxCallback"));
457 }
458
459 void InternetOptionsHandler::DisableWimaxCallback(const base::ListValue* args) {
460 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled(
461 NetworkTypePattern::Wimax(), false,
462 base::Bind(&ShillError, "DisableWimaxCallback"));
463 } 398 }
464 399
465 void InternetOptionsHandler::ShowMorePlanInfoCallback( 400 void InternetOptionsHandler::ShowMorePlanInfoCallback(
466 const base::ListValue* args) { 401 const base::ListValue* args) {
467 if (!web_ui()) 402 if (!web_ui())
468 return; 403 return;
469 std::string service_path; 404 std::string service_path;
470 if (args->GetSize() != 1 || !args->GetString(0, &service_path)) { 405 if (args->GetSize() != 1 || !args->GetString(0, &service_path)) {
471 NOTREACHED(); 406 NOTREACHED();
472 return; 407 return;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 base::Bind(&ShillError, "SetApnProperties")); 468 base::Bind(&ShillError, "SetApnProperties"));
534 } 469 }
535 470
536 void InternetOptionsHandler::CarrierStatusCallback() { 471 void InternetOptionsHandler::CarrierStatusCallback() {
537 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); 472 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler();
538 const DeviceState* device = 473 const DeviceState* device =
539 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); 474 handler->GetDeviceStateByType(NetworkTypePattern::Cellular());
540 if (device && (device->carrier() == shill::kCarrierSprint)) { 475 if (device && (device->carrier() == shill::kCarrierSprint)) {
541 const NetworkState* network = 476 const NetworkState* network =
542 handler->FirstNetworkByType(NetworkTypePattern::Cellular()); 477 handler->FirstNetworkByType(NetworkTypePattern::Cellular());
543 if (network) { 478 if (network && network->path() == details_path_) {
544 ash::network_connect::ActivateCellular(network->path()); 479 ash::network_connect::ActivateCellular(network->path());
545 UpdateConnectionData(network->path()); 480 UpdateConnectionData(network->path());
546 } 481 }
547 } 482 }
548 UpdateCarrier(); 483 UpdateCarrier();
549 } 484 }
550 485
551 void InternetOptionsHandler::SetCarrierCallback(const base::ListValue* args) { 486 void InternetOptionsHandler::SetCarrierCallback(const base::ListValue* args) {
552 std::string service_path; 487 std::string service_path;
553 std::string carrier; 488 std::string carrier;
(...skipping 10 matching lines...) Expand all
564 return; 499 return;
565 } 500 }
566 NetworkHandler::Get()->network_device_handler()->SetCarrier( 501 NetworkHandler::Get()->network_device_handler()->SetCarrier(
567 device->path(), 502 device->path(),
568 carrier, 503 carrier,
569 base::Bind(&InternetOptionsHandler::CarrierStatusCallback, 504 base::Bind(&InternetOptionsHandler::CarrierStatusCallback,
570 weak_factory_.GetWeakPtr()), 505 weak_factory_.GetWeakPtr()),
571 base::Bind(&ShillError, "SetCarrierCallback")); 506 base::Bind(&ShillError, "SetCarrierCallback"));
572 } 507 }
573 508
574 void InternetOptionsHandler::SetSimCardLockCallback( 509 void InternetOptionsHandler::SimOperationCallback(const base::ListValue* args) {
575 const base::ListValue* args) { 510 std::string operation;
576 bool require_pin_new_value; 511 if (args->GetSize() != 1 || !args->GetString(0, &operation)) {
577 if (!args->GetBoolean(0, &require_pin_new_value)) {
578 NOTREACHED(); 512 NOTREACHED();
579 return; 513 return;
580 } 514 }
515 if (operation == kTagSimOpConfigure) {
516 mobile_config_ui::DisplayConfigDialog();
517 return;
518 }
581 // 1. Bring up SIM unlock dialog, pass new RequirePin setting in URL. 519 // 1. Bring up SIM unlock dialog, pass new RequirePin setting in URL.
582 // 2. Dialog will ask for current PIN in any case. 520 // 2. Dialog will ask for current PIN in any case.
583 // 3. If card is locked it will first call PIN unlock operation 521 // 3. If card is locked it will first call PIN unlock operation
584 // 4. Then it will call Set RequirePin, passing the same PIN. 522 // 4. Then it will call Set RequirePin, passing the same PIN.
585 // 5. The dialog may change device properties, in which case 523 // 5. The dialog may change device properties, in which case
586 // DevicePropertiesUpdated() will get called which will update the UI. 524 // DevicePropertiesUpdated() will get called which will update the UI.
587 SimDialogDelegate::SimDialogMode mode; 525 SimDialogDelegate::SimDialogMode mode;
588 if (require_pin_new_value) 526 if (operation == kTagSimOpSetLocked) {
589 mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_ON; 527 mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_ON;
590 else 528 } else if (operation == kTagSimOpSetUnlocked) {
591 mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_OFF; 529 mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_OFF;
530 } else if (operation == kTagSimOpUnlock) {
531 mode = SimDialogDelegate::SIM_DIALOG_UNLOCK;
532 } else if (operation == kTagSimOpChangePin) {
533 mode = SimDialogDelegate::SIM_DIALOG_CHANGE_PIN;
534 } else {
535 NOTREACHED();
536 return;
537 }
592 SimDialogDelegate::ShowDialog(GetNativeWindow(), mode); 538 SimDialogDelegate::ShowDialog(GetNativeWindow(), mode);
593 } 539 }
594 540
595 void InternetOptionsHandler::ChangePinCallback(const base::ListValue* args) { 541 ////////////////////////////////////////////////////////////////////////////////
596 SimDialogDelegate::ShowDialog(GetNativeWindow(), 542 // networkingPrivate implementation methods
armansito 2014/09/16 16:40:42 Add a note saying that these will be superseded by
stevenjb 2014/09/16 17:32:58 Done.
597 SimDialogDelegate::SIM_DIALOG_CHANGE_PIN); 543
544 void InternetOptionsHandler::DisableNetworkTypeCallback(
545 const base::ListValue* args) {
546 std::string type;
547 if (!args->GetString(0, &type)) {
548 NOTREACHED();
549 return;
550 }
551 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled(
552 chromeos::onc::NetworkTypePatternFromOncType(type), false,
553 base::Bind(&ShillError, "DisableNetworkType"));
598 } 554 }
599 555
600 void InternetOptionsHandler::RefreshNetworksCallback( 556 void InternetOptionsHandler::EnableNetworkTypeCallback(
557 const base::ListValue* args) {
558 std::string type;
559 if (!args->GetString(0, &type)) {
560 NOTREACHED();
561 return;
562 }
563 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled(
564 chromeos::onc::NetworkTypePatternFromOncType(type), true,
565 base::Bind(&ShillError, "EnableNetworkType"));
566 }
567
568 void InternetOptionsHandler::GetManagedPropertiesCallback(
569 const base::ListValue* args) {
570 std::string service_path;
571 if (!args->GetString(0, &service_path)) {
572 NOTREACHED();
573 return;
574 }
575 NetworkHandler::Get()->managed_network_configuration_handler()
576 ->GetManagedProperties(
577 LoginState::Get()->primary_user_hash(),
578 service_path,
579 base::Bind(
580 &InternetOptionsHandler::PopulateDictionaryDetailsCallback,
581 weak_factory_.GetWeakPtr()),
582 base::Bind(&ShillError, "GetManagedProperties"));
583 }
584
585 void InternetOptionsHandler::RequestNetworkScanCallback(
601 const base::ListValue* args) { 586 const base::ListValue* args) {
602 NetworkHandler::Get()->network_state_handler()->RequestScan(); 587 NetworkHandler::Get()->network_state_handler()->RequestScan();
603 } 588 }
604 589
590 void InternetOptionsHandler::StartConnectCallback(const base::ListValue* args) {
591 std::string service_path;
592 if (!args->GetString(0, &service_path)) {
593 NOTREACHED();
594 return;
595 }
596 ash::network_connect::ConnectToNetwork(service_path, GetNativeWindow());
597 }
598
599 void InternetOptionsHandler::StartDisconnectCallback(
600 const base::ListValue* args) {
601 std::string service_path;
602 if (!args->GetString(0, &service_path)) {
603 NOTREACHED();
604 return;
605 }
606 NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork(
607 service_path,
608 base::Bind(&base::DoNothing),
609 base::Bind(&ShillError, "StartDisconnectCallback"));
610 }
611
612 ////////////////////////////////////////////////////////////////////////////////
613
605 std::string InternetOptionsHandler::GetIconDataUrl(int resource_id) const { 614 std::string InternetOptionsHandler::GetIconDataUrl(int resource_id) const {
606 gfx::ImageSkia* icon = 615 gfx::ImageSkia* icon =
607 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id); 616 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id);
608 gfx::ImageSkiaRep image_rep = icon->GetRepresentation( 617 gfx::ImageSkiaRep image_rep = icon->GetRepresentation(
609 web_ui()->GetDeviceScaleFactor()); 618 web_ui()->GetDeviceScaleFactor());
610 return webui::GetBitmapDataUrl(image_rep.sk_bitmap()); 619 return webui::GetBitmapDataUrl(image_rep.sk_bitmap());
611 } 620 }
612 621
613 void InternetOptionsHandler::RefreshNetworkData() { 622 void InternetOptionsHandler::RefreshNetworkData() {
614 base::DictionaryValue dictionary; 623 base::DictionaryValue dictionary;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 void InternetOptionsHandler::NetworkListChanged() { 661 void InternetOptionsHandler::NetworkListChanged() {
653 if (!web_ui()) 662 if (!web_ui())
654 return; 663 return;
655 RefreshNetworkData(); 664 RefreshNetworkData();
656 } 665 }
657 666
658 void InternetOptionsHandler::NetworkConnectionStateChanged( 667 void InternetOptionsHandler::NetworkConnectionStateChanged(
659 const NetworkState* network) { 668 const NetworkState* network) {
660 if (!web_ui()) 669 if (!web_ui())
661 return; 670 return;
662 // Update the connection data for the detailed view when the connection state 671 if (network->path() == details_path_)
663 // of any network changes. 672 UpdateConnectionData(network->path());
664 if (!details_path_.empty())
665 UpdateConnectionData(details_path_);
666 } 673 }
667 674
668 void InternetOptionsHandler::NetworkPropertiesUpdated( 675 void InternetOptionsHandler::NetworkPropertiesUpdated(
669 const NetworkState* network) { 676 const NetworkState* network) {
670 if (!web_ui()) 677 if (!web_ui())
671 return; 678 return;
672 RefreshNetworkData(); 679 RefreshNetworkData();
673 UpdateConnectionData(network->path()); 680 if (network->path() == details_path_)
681 UpdateConnectionData(network->path());
674 } 682 }
675 683
676 void InternetOptionsHandler::DevicePropertiesUpdated( 684 void InternetOptionsHandler::DevicePropertiesUpdated(
677 const DeviceState* device) { 685 const DeviceState* device) {
678 if (!web_ui()) 686 if (!web_ui())
679 return; 687 return;
680 if (device->type() != shill::kTypeCellular) 688 if (device->type() != shill::kTypeCellular)
681 return; 689 return;
682 const NetworkState* network = 690 const NetworkState* network =
683 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType( 691 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType(
684 NetworkTypePattern::Cellular()); 692 NetworkTypePattern::Cellular());
685 if (network) 693 if (network && network->path() == details_path_)
686 UpdateConnectionData(network->path()); // Update sim lock status. 694 UpdateConnectionData(network->path());
687 } 695 }
688 696
689 void InternetOptionsHandler::SetServerHostnameCallback( 697 void InternetOptionsHandler::SetServerHostnameCallback(
690 const base::ListValue* args) { 698 const base::ListValue* args) {
691 std::string service_path, server_hostname; 699 std::string service_path, server_hostname;
692 if (args->GetSize() < 2 || 700 if (args->GetSize() < 2 ||
693 !args->GetString(0, &service_path) || 701 !args->GetString(0, &service_path) ||
694 !args->GetString(1, &server_hostname)) { 702 !args->GetString(1, &server_hostname)) {
695 NOTREACHED(); 703 NOTREACHED();
696 return; 704 return;
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 } 840 }
833 841
834 void InternetOptionsHandler::PopulateDictionaryDetailsCallback( 842 void InternetOptionsHandler::PopulateDictionaryDetailsCallback(
835 const std::string& service_path, 843 const std::string& service_path,
836 const base::DictionaryValue& onc_properties) { 844 const base::DictionaryValue& onc_properties) {
837 const NetworkState* network = GetNetworkState(service_path); 845 const NetworkState* network = GetNetworkState(service_path);
838 if (!network) { 846 if (!network) {
839 LOG(ERROR) << "Network properties not found: " << service_path; 847 LOG(ERROR) << "Network properties not found: " << service_path;
840 return; 848 return;
841 } 849 }
842
843 details_path_ = service_path;
844
845 scoped_ptr<base::DictionaryValue> dictionary = 850 scoped_ptr<base::DictionaryValue> dictionary =
846 PopulateConnectionDetails(network, onc_properties); 851 PopulateConnectionDetails(network, onc_properties);
847 852
848 // Show details dialog 853 // Show details dialog
849 web_ui()->CallJavascriptFunction(kShowDetailedInfoFunction, *dictionary); 854 web_ui()->CallJavascriptFunction(kSendNetworkDetailsFunction, *dictionary);
850 } 855 }
851 856
852 gfx::NativeWindow InternetOptionsHandler::GetNativeWindow() const { 857 gfx::NativeWindow InternetOptionsHandler::GetNativeWindow() const {
853 return web_ui()->GetWebContents()->GetTopLevelNativeWindow(); 858 return web_ui()->GetWebContents()->GetTopLevelNativeWindow();
854 } 859 }
855 860
856 float InternetOptionsHandler::GetScaleFactor() const { 861 float InternetOptionsHandler::GetScaleFactor() const {
857 return web_ui()->GetDeviceScaleFactor(); 862 return web_ui()->GetDeviceScaleFactor();
858 } 863 }
859 864
(...skipping 21 matching lines...) Expand all
881 } 886 }
882 // Process commands that do not require an existing network. 887 // Process commands that do not require an existing network.
883 if (command == kTagAddConnection) { 888 if (command == kTagAddConnection) {
884 AddConnection(type); 889 AddConnection(type);
885 } else if (command == kTagForget) { 890 } else if (command == kTagForget) {
886 NetworkHandler::Get()->network_configuration_handler()-> 891 NetworkHandler::Get()->network_configuration_handler()->
887 RemoveConfiguration( 892 RemoveConfiguration(
888 service_path, 893 service_path,
889 base::Bind(&base::DoNothing), 894 base::Bind(&base::DoNothing),
890 base::Bind(&ShillError, "NetworkCommand: " + command)); 895 base::Bind(&ShillError, "NetworkCommand: " + command));
891 } else if (command == kTagOptions) { 896 } else if (command == kTagShowDetails) {
892 NetworkHandler::Get() 897 SendShowDetailedInfo(service_path);
893 ->managed_network_configuration_handler()
894 ->GetManagedProperties(
895 LoginState::Get()->primary_user_hash(),
896 service_path,
897 base::Bind(
898 &InternetOptionsHandler::PopulateDictionaryDetailsCallback,
899 weak_factory_.GetWeakPtr()),
900 base::Bind(&ShillError, "NetworkCommand: " + command));
901 } else if (command == kTagConnect) {
902 ash::network_connect::ConnectToNetwork(service_path, GetNativeWindow());
903 } else if (command == kTagDisconnect) {
904 NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork(
905 service_path,
906 base::Bind(&base::DoNothing),
907 base::Bind(&ShillError, "NetworkCommand: " + command));
908 } else if (command == kTagConfigure) { 898 } else if (command == kTagConfigure) {
909 NetworkConfigView::Show(service_path, GetNativeWindow()); 899 NetworkConfigView::Show(service_path, GetNativeWindow());
910 } else if (command == kTagActivate && type == shill::kTypeCellular) { 900 } else if (command == kTagActivate && type == shill::kTypeCellular) {
911 ash::network_connect::ActivateCellular(service_path); 901 ash::network_connect::ActivateCellular(service_path);
912 // Activation may update network properties (e.g. ActivationState), so 902 // Activation may update network properties (e.g. ActivationState), so
913 // request them here in case they change. 903 // request them here in case they change.
914 UpdateConnectionData(service_path); 904 UpdateConnectionData(service_path);
915 } else { 905 } else {
916 VLOG(1) << "Unknown command: " << command; 906 LOG(ERROR) << "Unknown inetenet options command: " << command;
armansito 2014/09/16 16:40:42 nit: inetenet -> internet
stevenjb 2014/09/16 17:32:58 Done.
917 NOTREACHED(); 907 NOTREACHED();
918 } 908 }
919 } 909 }
920 910
921 void InternetOptionsHandler::AddConnection(const std::string& type) { 911 void InternetOptionsHandler::AddConnection(const std::string& type) {
922 if (type == shill::kTypeWifi) { 912 if (type == shill::kTypeWifi) {
923 NetworkConfigView::ShowForType(shill::kTypeWifi, GetNativeWindow()); 913 NetworkConfigView::ShowForType(shill::kTypeWifi, GetNativeWindow());
924 } else if (type == shill::kTypeVPN) { 914 } else if (type == shill::kTypeVPN) {
925 NetworkConfigView::ShowForType(shill::kTypeVPN, GetNativeWindow()); 915 NetworkConfigView::ShowForType(shill::kTypeVPN, GetNativeWindow());
926 } else if (type == shill::kTypeCellular) { 916 } else if (type == shill::kTypeCellular) {
927 ChooseMobileNetworkDialog::ShowDialog(GetNativeWindow()); 917 ChooseMobileNetworkDialog::ShowDialog(GetNativeWindow());
928 } else { 918 } else {
929 LOG(ERROR) << "Unsupported type for AddConnection"; 919 LOG(ERROR) << "Unsupported type for AddConnection";
930 } 920 }
931 } 921 }
932 922
923 void InternetOptionsHandler::SendShowDetailedInfo(
924 const std::string& service_path) {
925 details_path_ = service_path;
926
927 scoped_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue);
928 const NetworkState* network = GetNetworkState(service_path);
929 if (network) {
930 dictionary->SetString(kNetworkInfoKeyServicePath, service_path);
931 dictionary->SetString(kNetworkInfoKeyGUID, network->guid());
932 if (network->type() == shill::kTypeCellular) {
933 dictionary->SetBoolean(
934 kTagCarrierSelectFlag,
935 CommandLine::ForCurrentProcess()
936 ->HasSwitch(chromeos::switches::kEnableCarrierSwitching));
937 dictionary->SetBoolean(kTagShowViewAccountButton,
938 ShowViewAccountButton(network));
939 }
940 }
941 web_ui()->CallJavascriptFunction(kShowDetailedInfoFunction, *dictionary);
942 }
943
933 base::ListValue* InternetOptionsHandler::GetWiredList() { 944 base::ListValue* InternetOptionsHandler::GetWiredList() {
934 base::ListValue* list = new base::ListValue(); 945 base::ListValue* list = new base::ListValue();
935 const NetworkState* network = NetworkHandler::Get()->network_state_handler()-> 946 const NetworkState* network = NetworkHandler::Get()->network_state_handler()->
936 FirstNetworkByType(NetworkTypePattern::Ethernet()); 947 FirstNetworkByType(NetworkTypePattern::Ethernet());
937 if (!network) 948 if (!network)
938 return list; 949 return list;
939 list->Append(BuildNetworkDictionary(network, GetScaleFactor(), GetPrefs())); 950 list->Append(BuildNetworkDictionary(network, GetScaleFactor(), GetPrefs()));
940 return list; 951 return list;
941 } 952 }
942 953
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 dictionary->Set(kTagVpnList, GetVPNList()); 1012 dictionary->Set(kTagVpnList, GetVPNList());
1002 dictionary->Set(kTagRememberedList, GetRememberedList()); 1013 dictionary->Set(kTagRememberedList, GetRememberedList());
1003 1014
1004 dictionary->SetBoolean( 1015 dictionary->SetBoolean(
1005 kTagWifiAvailable, 1016 kTagWifiAvailable,
1006 handler->IsTechnologyAvailable(NetworkTypePattern::WiFi())); 1017 handler->IsTechnologyAvailable(NetworkTypePattern::WiFi()));
1007 dictionary->SetBoolean( 1018 dictionary->SetBoolean(
1008 kTagWifiEnabled, 1019 kTagWifiEnabled,
1009 handler->IsTechnologyEnabled(NetworkTypePattern::WiFi())); 1020 handler->IsTechnologyEnabled(NetworkTypePattern::WiFi()));
1010 1021
1022 const DeviceState* cellular =
1023 handler->GetDeviceStateByType(NetworkTypePattern::Mobile());
1011 dictionary->SetBoolean( 1024 dictionary->SetBoolean(
1012 kTagCellularAvailable, 1025 kTagCellularAvailable,
1013 handler->IsTechnologyAvailable(NetworkTypePattern::Mobile())); 1026 handler->IsTechnologyAvailable(NetworkTypePattern::Mobile()));
1014 dictionary->SetBoolean( 1027 dictionary->SetBoolean(
1015 kTagCellularEnabled, 1028 kTagCellularEnabled,
1016 handler->IsTechnologyEnabled(NetworkTypePattern::Mobile())); 1029 handler->IsTechnologyEnabled(NetworkTypePattern::Mobile()));
1017 const DeviceState* cellular = 1030 dictionary->SetBoolean(kTagCellularSupportsScan,
1018 handler->GetDeviceStateByType(NetworkTypePattern::Mobile()); 1031 cellular && cellular->support_network_scan());
1019 dictionary->SetBoolean( 1032 dictionary->SetBoolean(kTagCellularSimAbsent,
1020 kTagCellularSupportsScan, 1033 cellular && cellular->IsSimAbsent());
1021 cellular && cellular->support_network_scan()); 1034 dictionary->SetString(kTagCellularSimLockType,
1035 cellular ? cellular->sim_lock_type() : "");
1022 1036
1023 dictionary->SetBoolean( 1037 dictionary->SetBoolean(
1024 kTagWimaxAvailable, 1038 kTagWimaxAvailable,
1025 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); 1039 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax()));
1026 dictionary->SetBoolean( 1040 dictionary->SetBoolean(
1027 kTagWimaxEnabled, 1041 kTagWimaxEnabled,
1028 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); 1042 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax()));
1029 } 1043 }
1030 1044
1031 } // namespace options 1045 } // namespace options
1032 } // namespace chromeos 1046 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698