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

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: Feedback 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
« no previous file with comments | « chrome/browser/ui/webui/options/chromeos/internet_options_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // TODO(stevenjb): Replace these with the matching networkingPrivate methods.
104 // crbug.com/279351.
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. TODO(stevenjb): Use the
597 SimDialogDelegate::SIM_DIALOG_CHANGE_PIN); 543 // networkingPrivate API directly in the settings JS and deprecate these
544 // methods. crbug.com/279351.
545
546 void InternetOptionsHandler::DisableNetworkTypeCallback(
547 const base::ListValue* args) {
548 std::string type;
549 if (!args->GetString(0, &type)) {
550 NOTREACHED();
551 return;
552 }
553 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled(
554 chromeos::onc::NetworkTypePatternFromOncType(type), false,
555 base::Bind(&ShillError, "DisableNetworkType"));
598 } 556 }
599 557
600 void InternetOptionsHandler::RefreshNetworksCallback( 558 void InternetOptionsHandler::EnableNetworkTypeCallback(
559 const base::ListValue* args) {
560 std::string type;
561 if (!args->GetString(0, &type)) {
562 NOTREACHED();
563 return;
564 }
565 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled(
566 chromeos::onc::NetworkTypePatternFromOncType(type), true,
567 base::Bind(&ShillError, "EnableNetworkType"));
568 }
569
570 void InternetOptionsHandler::GetManagedPropertiesCallback(
571 const base::ListValue* args) {
572 std::string service_path;
573 if (!args->GetString(0, &service_path)) {
574 NOTREACHED();
575 return;
576 }
577 NetworkHandler::Get()->managed_network_configuration_handler()
578 ->GetManagedProperties(
579 LoginState::Get()->primary_user_hash(),
580 service_path,
581 base::Bind(
582 &InternetOptionsHandler::PopulateDictionaryDetailsCallback,
583 weak_factory_.GetWeakPtr()),
584 base::Bind(&ShillError, "GetManagedProperties"));
585 }
586
587 void InternetOptionsHandler::RequestNetworkScanCallback(
601 const base::ListValue* args) { 588 const base::ListValue* args) {
602 NetworkHandler::Get()->network_state_handler()->RequestScan(); 589 NetworkHandler::Get()->network_state_handler()->RequestScan();
603 } 590 }
604 591
592 void InternetOptionsHandler::StartConnectCallback(const base::ListValue* args) {
593 std::string service_path;
594 if (!args->GetString(0, &service_path)) {
595 NOTREACHED();
596 return;
597 }
598 ash::network_connect::ConnectToNetwork(service_path, GetNativeWindow());
599 }
600
601 void InternetOptionsHandler::StartDisconnectCallback(
602 const base::ListValue* args) {
603 std::string service_path;
604 if (!args->GetString(0, &service_path)) {
605 NOTREACHED();
606 return;
607 }
608 NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork(
609 service_path,
610 base::Bind(&base::DoNothing),
611 base::Bind(&ShillError, "StartDisconnectCallback"));
612 }
613
614 ////////////////////////////////////////////////////////////////////////////////
615
605 std::string InternetOptionsHandler::GetIconDataUrl(int resource_id) const { 616 std::string InternetOptionsHandler::GetIconDataUrl(int resource_id) const {
606 gfx::ImageSkia* icon = 617 gfx::ImageSkia* icon =
607 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id); 618 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id);
608 gfx::ImageSkiaRep image_rep = icon->GetRepresentation( 619 gfx::ImageSkiaRep image_rep = icon->GetRepresentation(
609 web_ui()->GetDeviceScaleFactor()); 620 web_ui()->GetDeviceScaleFactor());
610 return webui::GetBitmapDataUrl(image_rep.sk_bitmap()); 621 return webui::GetBitmapDataUrl(image_rep.sk_bitmap());
611 } 622 }
612 623
613 void InternetOptionsHandler::RefreshNetworkData() { 624 void InternetOptionsHandler::RefreshNetworkData() {
614 base::DictionaryValue dictionary; 625 base::DictionaryValue dictionary;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 void InternetOptionsHandler::NetworkListChanged() { 663 void InternetOptionsHandler::NetworkListChanged() {
653 if (!web_ui()) 664 if (!web_ui())
654 return; 665 return;
655 RefreshNetworkData(); 666 RefreshNetworkData();
656 } 667 }
657 668
658 void InternetOptionsHandler::NetworkConnectionStateChanged( 669 void InternetOptionsHandler::NetworkConnectionStateChanged(
659 const NetworkState* network) { 670 const NetworkState* network) {
660 if (!web_ui()) 671 if (!web_ui())
661 return; 672 return;
662 // Update the connection data for the detailed view when the connection state 673 if (network->path() == details_path_)
663 // of any network changes. 674 UpdateConnectionData(network->path());
664 if (!details_path_.empty())
665 UpdateConnectionData(details_path_);
666 } 675 }
667 676
668 void InternetOptionsHandler::NetworkPropertiesUpdated( 677 void InternetOptionsHandler::NetworkPropertiesUpdated(
669 const NetworkState* network) { 678 const NetworkState* network) {
670 if (!web_ui()) 679 if (!web_ui())
671 return; 680 return;
672 RefreshNetworkData(); 681 RefreshNetworkData();
673 UpdateConnectionData(network->path()); 682 if (network->path() == details_path_)
683 UpdateConnectionData(network->path());
674 } 684 }
675 685
676 void InternetOptionsHandler::DevicePropertiesUpdated( 686 void InternetOptionsHandler::DevicePropertiesUpdated(
677 const DeviceState* device) { 687 const DeviceState* device) {
678 if (!web_ui()) 688 if (!web_ui())
679 return; 689 return;
680 if (device->type() != shill::kTypeCellular) 690 if (device->type() != shill::kTypeCellular)
681 return; 691 return;
682 const NetworkState* network = 692 const NetworkState* network =
683 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType( 693 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType(
684 NetworkTypePattern::Cellular()); 694 NetworkTypePattern::Cellular());
685 if (network) 695 if (network && network->path() == details_path_)
686 UpdateConnectionData(network->path()); // Update sim lock status. 696 UpdateConnectionData(network->path());
687 } 697 }
688 698
689 void InternetOptionsHandler::SetServerHostnameCallback( 699 void InternetOptionsHandler::SetServerHostnameCallback(
690 const base::ListValue* args) { 700 const base::ListValue* args) {
691 std::string service_path, server_hostname; 701 std::string service_path, server_hostname;
692 if (args->GetSize() < 2 || 702 if (args->GetSize() < 2 ||
693 !args->GetString(0, &service_path) || 703 !args->GetString(0, &service_path) ||
694 !args->GetString(1, &server_hostname)) { 704 !args->GetString(1, &server_hostname)) {
695 NOTREACHED(); 705 NOTREACHED();
696 return; 706 return;
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 } 842 }
833 843
834 void InternetOptionsHandler::PopulateDictionaryDetailsCallback( 844 void InternetOptionsHandler::PopulateDictionaryDetailsCallback(
835 const std::string& service_path, 845 const std::string& service_path,
836 const base::DictionaryValue& onc_properties) { 846 const base::DictionaryValue& onc_properties) {
837 const NetworkState* network = GetNetworkState(service_path); 847 const NetworkState* network = GetNetworkState(service_path);
838 if (!network) { 848 if (!network) {
839 LOG(ERROR) << "Network properties not found: " << service_path; 849 LOG(ERROR) << "Network properties not found: " << service_path;
840 return; 850 return;
841 } 851 }
842
843 details_path_ = service_path;
844
845 scoped_ptr<base::DictionaryValue> dictionary = 852 scoped_ptr<base::DictionaryValue> dictionary =
846 PopulateConnectionDetails(network, onc_properties); 853 PopulateConnectionDetails(network, onc_properties);
847 854
848 // Show details dialog 855 // Show details dialog
849 web_ui()->CallJavascriptFunction(kShowDetailedInfoFunction, *dictionary); 856 web_ui()->CallJavascriptFunction(kSendNetworkDetailsFunction, *dictionary);
850 } 857 }
851 858
852 gfx::NativeWindow InternetOptionsHandler::GetNativeWindow() const { 859 gfx::NativeWindow InternetOptionsHandler::GetNativeWindow() const {
853 return web_ui()->GetWebContents()->GetTopLevelNativeWindow(); 860 return web_ui()->GetWebContents()->GetTopLevelNativeWindow();
854 } 861 }
855 862
856 float InternetOptionsHandler::GetScaleFactor() const { 863 float InternetOptionsHandler::GetScaleFactor() const {
857 return web_ui()->GetDeviceScaleFactor(); 864 return web_ui()->GetDeviceScaleFactor();
858 } 865 }
859 866
(...skipping 21 matching lines...) Expand all
881 } 888 }
882 // Process commands that do not require an existing network. 889 // Process commands that do not require an existing network.
883 if (command == kTagAddConnection) { 890 if (command == kTagAddConnection) {
884 AddConnection(type); 891 AddConnection(type);
885 } else if (command == kTagForget) { 892 } else if (command == kTagForget) {
886 NetworkHandler::Get()->network_configuration_handler()-> 893 NetworkHandler::Get()->network_configuration_handler()->
887 RemoveConfiguration( 894 RemoveConfiguration(
888 service_path, 895 service_path,
889 base::Bind(&base::DoNothing), 896 base::Bind(&base::DoNothing),
890 base::Bind(&ShillError, "NetworkCommand: " + command)); 897 base::Bind(&ShillError, "NetworkCommand: " + command));
891 } else if (command == kTagOptions) { 898 } else if (command == kTagShowDetails) {
892 NetworkHandler::Get() 899 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) { 900 } else if (command == kTagConfigure) {
909 NetworkConfigView::Show(service_path, GetNativeWindow()); 901 NetworkConfigView::Show(service_path, GetNativeWindow());
910 } else if (command == kTagActivate && type == shill::kTypeCellular) { 902 } else if (command == kTagActivate && type == shill::kTypeCellular) {
911 ash::network_connect::ActivateCellular(service_path); 903 ash::network_connect::ActivateCellular(service_path);
912 // Activation may update network properties (e.g. ActivationState), so 904 // Activation may update network properties (e.g. ActivationState), so
913 // request them here in case they change. 905 // request them here in case they change.
914 UpdateConnectionData(service_path); 906 UpdateConnectionData(service_path);
915 } else { 907 } else {
916 VLOG(1) << "Unknown command: " << command; 908 LOG(ERROR) << "Unknown internet options command: " << command;
917 NOTREACHED(); 909 NOTREACHED();
918 } 910 }
919 } 911 }
920 912
921 void InternetOptionsHandler::AddConnection(const std::string& type) { 913 void InternetOptionsHandler::AddConnection(const std::string& type) {
922 if (type == shill::kTypeWifi) { 914 if (type == shill::kTypeWifi) {
923 NetworkConfigView::ShowForType(shill::kTypeWifi, GetNativeWindow()); 915 NetworkConfigView::ShowForType(shill::kTypeWifi, GetNativeWindow());
924 } else if (type == shill::kTypeVPN) { 916 } else if (type == shill::kTypeVPN) {
925 NetworkConfigView::ShowForType(shill::kTypeVPN, GetNativeWindow()); 917 NetworkConfigView::ShowForType(shill::kTypeVPN, GetNativeWindow());
926 } else if (type == shill::kTypeCellular) { 918 } else if (type == shill::kTypeCellular) {
927 ChooseMobileNetworkDialog::ShowDialog(GetNativeWindow()); 919 ChooseMobileNetworkDialog::ShowDialog(GetNativeWindow());
928 } else { 920 } else {
929 LOG(ERROR) << "Unsupported type for AddConnection"; 921 LOG(ERROR) << "Unsupported type for AddConnection";
930 } 922 }
931 } 923 }
932 924
925 void InternetOptionsHandler::SendShowDetailedInfo(
926 const std::string& service_path) {
927 details_path_ = service_path;
928
929 scoped_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue);
930 const NetworkState* network = GetNetworkState(service_path);
931 if (network) {
932 dictionary->SetString(kNetworkInfoKeyServicePath, service_path);
933 dictionary->SetString(kNetworkInfoKeyGUID, network->guid());
934 if (network->type() == shill::kTypeCellular) {
935 dictionary->SetBoolean(
936 kTagCarrierSelectFlag,
937 CommandLine::ForCurrentProcess()
938 ->HasSwitch(chromeos::switches::kEnableCarrierSwitching));
939 dictionary->SetBoolean(kTagShowViewAccountButton,
940 ShowViewAccountButton(network));
941 }
942 }
943 web_ui()->CallJavascriptFunction(kShowDetailedInfoFunction, *dictionary);
944 }
945
933 base::ListValue* InternetOptionsHandler::GetWiredList() { 946 base::ListValue* InternetOptionsHandler::GetWiredList() {
934 base::ListValue* list = new base::ListValue(); 947 base::ListValue* list = new base::ListValue();
935 const NetworkState* network = NetworkHandler::Get()->network_state_handler()-> 948 const NetworkState* network = NetworkHandler::Get()->network_state_handler()->
936 FirstNetworkByType(NetworkTypePattern::Ethernet()); 949 FirstNetworkByType(NetworkTypePattern::Ethernet());
937 if (!network) 950 if (!network)
938 return list; 951 return list;
939 list->Append(BuildNetworkDictionary(network, GetScaleFactor(), GetPrefs())); 952 list->Append(BuildNetworkDictionary(network, GetScaleFactor(), GetPrefs()));
940 return list; 953 return list;
941 } 954 }
942 955
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 dictionary->Set(kTagVpnList, GetVPNList()); 1014 dictionary->Set(kTagVpnList, GetVPNList());
1002 dictionary->Set(kTagRememberedList, GetRememberedList()); 1015 dictionary->Set(kTagRememberedList, GetRememberedList());
1003 1016
1004 dictionary->SetBoolean( 1017 dictionary->SetBoolean(
1005 kTagWifiAvailable, 1018 kTagWifiAvailable,
1006 handler->IsTechnologyAvailable(NetworkTypePattern::WiFi())); 1019 handler->IsTechnologyAvailable(NetworkTypePattern::WiFi()));
1007 dictionary->SetBoolean( 1020 dictionary->SetBoolean(
1008 kTagWifiEnabled, 1021 kTagWifiEnabled,
1009 handler->IsTechnologyEnabled(NetworkTypePattern::WiFi())); 1022 handler->IsTechnologyEnabled(NetworkTypePattern::WiFi()));
1010 1023
1024 const DeviceState* cellular =
1025 handler->GetDeviceStateByType(NetworkTypePattern::Mobile());
1011 dictionary->SetBoolean( 1026 dictionary->SetBoolean(
1012 kTagCellularAvailable, 1027 kTagCellularAvailable,
1013 handler->IsTechnologyAvailable(NetworkTypePattern::Mobile())); 1028 handler->IsTechnologyAvailable(NetworkTypePattern::Mobile()));
1014 dictionary->SetBoolean( 1029 dictionary->SetBoolean(
1015 kTagCellularEnabled, 1030 kTagCellularEnabled,
1016 handler->IsTechnologyEnabled(NetworkTypePattern::Mobile())); 1031 handler->IsTechnologyEnabled(NetworkTypePattern::Mobile()));
1017 const DeviceState* cellular = 1032 dictionary->SetBoolean(kTagCellularSupportsScan,
1018 handler->GetDeviceStateByType(NetworkTypePattern::Mobile()); 1033 cellular && cellular->support_network_scan());
1019 dictionary->SetBoolean( 1034 dictionary->SetBoolean(kTagCellularSimAbsent,
1020 kTagCellularSupportsScan, 1035 cellular && cellular->IsSimAbsent());
1021 cellular && cellular->support_network_scan()); 1036 dictionary->SetString(kTagCellularSimLockType,
1037 cellular ? cellular->sim_lock_type() : "");
1022 1038
1023 dictionary->SetBoolean( 1039 dictionary->SetBoolean(
1024 kTagWimaxAvailable, 1040 kTagWimaxAvailable,
1025 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); 1041 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax()));
1026 dictionary->SetBoolean( 1042 dictionary->SetBoolean(
1027 kTagWimaxEnabled, 1043 kTagWimaxEnabled,
1028 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); 1044 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax()));
1029 } 1045 }
1030 1046
1031 } // namespace options 1047 } // namespace options
1032 } // namespace chromeos 1048 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/chromeos/internet_options_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698