| OLD | NEW |
| 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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 const char kGetManagedPropertiesResultFunction[] = | 88 const char kGetManagedPropertiesResultFunction[] = |
| 89 "options.internet.DetailsInternetPage.getManagedPropertiesResult"; | 89 "options.internet.DetailsInternetPage.getManagedPropertiesResult"; |
| 90 const char kUpdateConnectionDataFunction[] = | 90 const char kUpdateConnectionDataFunction[] = |
| 91 "options.internet.DetailsInternetPage.updateConnectionData"; | 91 "options.internet.DetailsInternetPage.updateConnectionData"; |
| 92 const char kUpdateCarrierFunction[] = | 92 const char kUpdateCarrierFunction[] = |
| 93 "options.internet.DetailsInternetPage.updateCarrier"; | 93 "options.internet.DetailsInternetPage.updateCarrier"; |
| 94 | 94 |
| 95 // Setter methods called from JS that still need to be converted to match | 95 // Setter methods called from JS that still need to be converted to match |
| 96 // networkingPrivate methods. | 96 // networkingPrivate methods. |
| 97 const char kSetApnMessage[] = "setApn"; | 97 const char kSetApnMessage[] = "setApn"; |
| 98 const char kSetAutoConnectMessage[] = "setAutoConnect"; | |
| 99 const char kSetCarrierMessage[] = "setCarrier"; | 98 const char kSetCarrierMessage[] = "setCarrier"; |
| 100 const char kSetIPConfigMessage[] = "setIPConfig"; | 99 const char kSetIPConfigMessage[] = "setIPConfig"; |
| 101 const char kSetPreferNetworkMessage[] = "setPreferNetwork"; | |
| 102 const char kSetServerHostname[] = "setServerHostname"; | |
| 103 const char kShowMorePlanInfoMessage[] = "showMorePlanInfo"; | 100 const char kShowMorePlanInfoMessage[] = "showMorePlanInfo"; |
| 104 const char kSimOperationMessage[] = "simOperation"; | 101 const char kSimOperationMessage[] = "simOperation"; |
| 105 | 102 |
| 106 // TODO(stevenjb): Replace these with the matching networkingPrivate methods. | 103 // TODO(stevenjb): Replace these with the matching networkingPrivate methods. |
| 107 // crbug.com/279351. | 104 // crbug.com/279351. |
| 108 const char kDisableNetworkTypeMessage[] = "disableNetworkType"; | 105 const char kDisableNetworkTypeMessage[] = "disableNetworkType"; |
| 109 const char kEnableNetworkTypeMessage[] = "enableNetworkType"; | 106 const char kEnableNetworkTypeMessage[] = "enableNetworkType"; |
| 110 const char kGetManagedPropertiesMessage[] = "getManagedProperties"; | 107 const char kGetManagedPropertiesMessage[] = "getManagedProperties"; |
| 111 const char kRequestNetworkScanMessage[] = "requestNetworkScan"; | 108 const char kRequestNetworkScanMessage[] = "requestNetworkScan"; |
| 112 const char kStartConnectMessage[] = "startConnect"; | 109 const char kStartConnectMessage[] = "startConnect"; |
| 113 const char kStartDisconnectMessage[] = "startDisconnect"; | 110 const char kStartDisconnectMessage[] = "startDisconnect"; |
| 111 const char kSetPropertiesMessage[] = "setProperties"; |
| 114 | 112 |
| 115 // TODO(stevenjb): Add these to networkingPrivate. | 113 // TODO(stevenjb): Add these to networkingPrivate. |
| 116 const char kRemoveNetworkMessage[] = "removeNetwork"; | 114 const char kRemoveNetworkMessage[] = "removeNetwork"; |
| 117 | 115 |
| 118 // TODO(stevenjb): Deprecate these and integrate with settings Web UI. | 116 // TODO(stevenjb): Deprecate these and integrate with settings Web UI. |
| 119 const char kAddConnectionMessage[] = "addConnection"; | 117 const char kAddConnectionMessage[] = "addConnection"; |
| 120 const char kConfigureNetworkMessage[] = "configureNetwork"; | 118 const char kConfigureNetworkMessage[] = "configureNetwork"; |
| 121 const char kActivateNetworkMessage[] = "activateNetwork"; | 119 const char kActivateNetworkMessage[] = "activateNetwork"; |
| 122 | 120 |
| 123 // These are strings used to communicate with JavaScript. | 121 // These are strings used to communicate with JavaScript. |
| (...skipping 14 matching lines...) Expand all Loading... |
| 138 const char kTagWimaxAvailable[] = "wimaxAvailable"; | 136 const char kTagWimaxAvailable[] = "wimaxAvailable"; |
| 139 const char kTagWimaxEnabled[] = "wimaxEnabled"; | 137 const char kTagWimaxEnabled[] = "wimaxEnabled"; |
| 140 const char kTagWiredList[] = "wiredList"; | 138 const char kTagWiredList[] = "wiredList"; |
| 141 const char kTagWirelessList[] = "wirelessList"; | 139 const char kTagWirelessList[] = "wirelessList"; |
| 142 | 140 |
| 143 // Pseudo-ONC chrome specific properties appended to the ONC dictionary. | 141 // Pseudo-ONC chrome specific properties appended to the ONC dictionary. |
| 144 const char kNetworkInfoKeyServicePath[] = "servicePath"; | 142 const char kNetworkInfoKeyServicePath[] = "servicePath"; |
| 145 const char kTagErrorMessage[] = "errorMessage"; | 143 const char kTagErrorMessage[] = "errorMessage"; |
| 146 const char kTagShowViewAccountButton[] = "showViewAccountButton"; | 144 const char kTagShowViewAccountButton[] = "showViewAccountButton"; |
| 147 | 145 |
| 148 const int kPreferredPriority = 1; | |
| 149 | |
| 150 void ShillError(const std::string& function, | 146 void ShillError(const std::string& function, |
| 151 const std::string& error_name, | 147 const std::string& error_name, |
| 152 scoped_ptr<base::DictionaryValue> error_data) { | 148 scoped_ptr<base::DictionaryValue> error_data) { |
| 153 // UpdateConnectionData may send requests for stale services; ignore | 149 // UpdateConnectionData may send requests for stale services; ignore |
| 154 // these errors. | 150 // these errors. |
| 155 if (function == "UpdateConnectionData" && | 151 if (function == "UpdateConnectionData" && |
| 156 error_name == network_handler::kDBusFailedError) | 152 error_name == network_handler::kDBusFailedError) |
| 157 return; | 153 return; |
| 158 NET_LOG_ERROR("Shill Error from InternetOptionsHandler: " + error_name, | 154 NET_LOG_ERROR("Shill Error from InternetOptionsHandler: " + error_name, |
| 159 function); | 155 function); |
| 160 } | 156 } |
| 161 | 157 |
| 162 const NetworkState* GetNetworkState(const std::string& service_path) { | 158 const NetworkState* GetNetworkState(const std::string& service_path) { |
| 163 return NetworkHandler::Get()->network_state_handler()-> | 159 return NetworkHandler::Get()->network_state_handler()-> |
| 164 GetNetworkState(service_path); | 160 GetNetworkState(service_path); |
| 165 } | 161 } |
| 166 | 162 |
| 167 void SetNetworkProperty(const std::string& service_path, | |
| 168 const std::string& property, | |
| 169 base::Value* value) { | |
| 170 NET_LOG_EVENT("SetNetworkProperty: " + property, service_path); | |
| 171 base::DictionaryValue properties; | |
| 172 properties.SetWithoutPathExpansion(property, value); | |
| 173 NetworkHandler::Get()->network_configuration_handler()->SetProperties( | |
| 174 service_path, properties, | |
| 175 base::Bind(&base::DoNothing), | |
| 176 base::Bind(&ShillError, "SetNetworkProperty")); | |
| 177 } | |
| 178 | |
| 179 // Builds a dictionary with network information and an icon used for the | 163 // Builds a dictionary with network information and an icon used for the |
| 180 // NetworkList on the settings page. Ownership of the returned pointer is | 164 // NetworkList on the settings page. Ownership of the returned pointer is |
| 181 // transferred to the caller. | 165 // transferred to the caller. |
| 182 base::DictionaryValue* BuildNetworkDictionary( | 166 base::DictionaryValue* BuildNetworkDictionary( |
| 183 const NetworkState* network, | 167 const NetworkState* network, |
| 184 float icon_scale_factor, | 168 float icon_scale_factor, |
| 185 const PrefService* profile_prefs) { | 169 const PrefService* profile_prefs) { |
| 186 scoped_ptr<base::DictionaryValue> network_info = | 170 scoped_ptr<base::DictionaryValue> network_info = |
| 187 network_util::TranslateNetworkStateToONC(network); | 171 network_util::TranslateNetworkStateToONC(network); |
| 188 | 172 |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 base::Unretained(this))); | 317 base::Unretained(this))); |
| 334 web_ui()->RegisterMessageCallback(kRemoveNetworkMessage, | 318 web_ui()->RegisterMessageCallback(kRemoveNetworkMessage, |
| 335 base::Bind(&InternetOptionsHandler::RemoveNetwork, | 319 base::Bind(&InternetOptionsHandler::RemoveNetwork, |
| 336 base::Unretained(this))); | 320 base::Unretained(this))); |
| 337 web_ui()->RegisterMessageCallback(kConfigureNetworkMessage, | 321 web_ui()->RegisterMessageCallback(kConfigureNetworkMessage, |
| 338 base::Bind(&InternetOptionsHandler::ConfigureNetwork, | 322 base::Bind(&InternetOptionsHandler::ConfigureNetwork, |
| 339 base::Unretained(this))); | 323 base::Unretained(this))); |
| 340 web_ui()->RegisterMessageCallback(kActivateNetworkMessage, | 324 web_ui()->RegisterMessageCallback(kActivateNetworkMessage, |
| 341 base::Bind(&InternetOptionsHandler::ActivateNetwork, | 325 base::Bind(&InternetOptionsHandler::ActivateNetwork, |
| 342 base::Unretained(this))); | 326 base::Unretained(this))); |
| 343 web_ui()->RegisterMessageCallback(kSetPreferNetworkMessage, | |
| 344 base::Bind(&InternetOptionsHandler::SetPreferNetworkCallback, | |
| 345 base::Unretained(this))); | |
| 346 web_ui()->RegisterMessageCallback(kSetAutoConnectMessage, | |
| 347 base::Bind(&InternetOptionsHandler::SetAutoConnectCallback, | |
| 348 base::Unretained(this))); | |
| 349 web_ui()->RegisterMessageCallback(kSetIPConfigMessage, | 327 web_ui()->RegisterMessageCallback(kSetIPConfigMessage, |
| 350 base::Bind(&InternetOptionsHandler::SetIPConfigCallback, | 328 base::Bind(&InternetOptionsHandler::SetIPConfigCallback, |
| 351 base::Unretained(this))); | 329 base::Unretained(this))); |
| 352 web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage, | 330 web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage, |
| 353 base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback, | 331 base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback, |
| 354 base::Unretained(this))); | 332 base::Unretained(this))); |
| 355 web_ui()->RegisterMessageCallback(kSetApnMessage, | 333 web_ui()->RegisterMessageCallback(kSetApnMessage, |
| 356 base::Bind(&InternetOptionsHandler::SetApnCallback, | 334 base::Bind(&InternetOptionsHandler::SetApnCallback, |
| 357 base::Unretained(this))); | 335 base::Unretained(this))); |
| 358 web_ui()->RegisterMessageCallback(kSetCarrierMessage, | 336 web_ui()->RegisterMessageCallback(kSetCarrierMessage, |
| 359 base::Bind(&InternetOptionsHandler::SetCarrierCallback, | 337 base::Bind(&InternetOptionsHandler::SetCarrierCallback, |
| 360 base::Unretained(this))); | 338 base::Unretained(this))); |
| 361 web_ui()->RegisterMessageCallback(kSimOperationMessage, | 339 web_ui()->RegisterMessageCallback(kSimOperationMessage, |
| 362 base::Bind(&InternetOptionsHandler::SimOperationCallback, | 340 base::Bind(&InternetOptionsHandler::SimOperationCallback, |
| 363 base::Unretained(this))); | 341 base::Unretained(this))); |
| 364 web_ui()->RegisterMessageCallback(kSetServerHostname, | |
| 365 base::Bind(&InternetOptionsHandler::SetServerHostnameCallback, | |
| 366 base::Unretained(this))); | |
| 367 | 342 |
| 368 // networkingPrivate methods | 343 // networkingPrivate methods |
| 369 web_ui()->RegisterMessageCallback(kDisableNetworkTypeMessage, | 344 web_ui()->RegisterMessageCallback(kDisableNetworkTypeMessage, |
| 370 base::Bind(&InternetOptionsHandler::DisableNetworkTypeCallback, | 345 base::Bind(&InternetOptionsHandler::DisableNetworkTypeCallback, |
| 371 base::Unretained(this))); | 346 base::Unretained(this))); |
| 372 web_ui()->RegisterMessageCallback(kEnableNetworkTypeMessage, | 347 web_ui()->RegisterMessageCallback(kEnableNetworkTypeMessage, |
| 373 base::Bind(&InternetOptionsHandler::EnableNetworkTypeCallback, | 348 base::Bind(&InternetOptionsHandler::EnableNetworkTypeCallback, |
| 374 base::Unretained(this))); | 349 base::Unretained(this))); |
| 375 web_ui()->RegisterMessageCallback(kGetManagedPropertiesMessage, | 350 web_ui()->RegisterMessageCallback(kGetManagedPropertiesMessage, |
| 376 base::Bind(&InternetOptionsHandler::GetManagedPropertiesCallback, | 351 base::Bind(&InternetOptionsHandler::GetManagedPropertiesCallback, |
| 377 base::Unretained(this))); | 352 base::Unretained(this))); |
| 378 web_ui()->RegisterMessageCallback(kRequestNetworkScanMessage, | 353 web_ui()->RegisterMessageCallback(kRequestNetworkScanMessage, |
| 379 base::Bind(&InternetOptionsHandler::RequestNetworkScanCallback, | 354 base::Bind(&InternetOptionsHandler::RequestNetworkScanCallback, |
| 380 base::Unretained(this))); | 355 base::Unretained(this))); |
| 381 web_ui()->RegisterMessageCallback(kStartConnectMessage, | 356 web_ui()->RegisterMessageCallback(kStartConnectMessage, |
| 382 base::Bind(&InternetOptionsHandler::StartConnectCallback, | 357 base::Bind(&InternetOptionsHandler::StartConnectCallback, |
| 383 base::Unretained(this))); | 358 base::Unretained(this))); |
| 384 web_ui()->RegisterMessageCallback(kStartDisconnectMessage, | 359 web_ui()->RegisterMessageCallback(kStartDisconnectMessage, |
| 385 base::Bind(&InternetOptionsHandler::StartDisconnectCallback, | 360 base::Bind(&InternetOptionsHandler::StartDisconnectCallback, |
| 386 base::Unretained(this))); | 361 base::Unretained(this))); |
| 362 web_ui()->RegisterMessageCallback(kSetPropertiesMessage, |
| 363 base::Bind(&InternetOptionsHandler::SetPropertiesCallback, |
| 364 base::Unretained(this))); |
| 387 } | 365 } |
| 388 | 366 |
| 389 void InternetOptionsHandler::ShowMorePlanInfoCallback( | 367 void InternetOptionsHandler::ShowMorePlanInfoCallback( |
| 390 const base::ListValue* args) { | 368 const base::ListValue* args) { |
| 391 if (!web_ui()) | 369 if (!web_ui()) |
| 392 return; | 370 return; |
| 393 std::string service_path; | 371 std::string service_path; |
| 394 if (args->GetSize() != 1 || !args->GetString(0, &service_path)) { | 372 if (args->GetSize() != 1 || !args->GetString(0, &service_path)) { |
| 395 NOTREACHED(); | 373 NOTREACHED(); |
| 396 return; | 374 return; |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 694 return; | 672 return; |
| 695 if (device->type() != shill::kTypeCellular) | 673 if (device->type() != shill::kTypeCellular) |
| 696 return; | 674 return; |
| 697 const NetworkState* network = | 675 const NetworkState* network = |
| 698 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType( | 676 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType( |
| 699 NetworkTypePattern::Cellular()); | 677 NetworkTypePattern::Cellular()); |
| 700 if (network && network->path() == details_path_) | 678 if (network && network->path() == details_path_) |
| 701 UpdateConnectionData(network->path()); | 679 UpdateConnectionData(network->path()); |
| 702 } | 680 } |
| 703 | 681 |
| 704 void InternetOptionsHandler::SetServerHostnameCallback( | 682 void InternetOptionsHandler::SetPropertiesCallback( |
| 705 const base::ListValue* args) { | 683 const base::ListValue* args) { |
| 706 std::string service_path, server_hostname; | 684 std::string service_path; |
| 685 const base::DictionaryValue* properties; |
| 707 if (args->GetSize() < 2 || | 686 if (args->GetSize() < 2 || |
| 708 !args->GetString(0, &service_path) || | 687 !args->GetString(0, &service_path) || |
| 709 !args->GetString(1, &server_hostname)) { | 688 !args->GetDictionary(1, &properties)) { |
| 710 NOTREACHED(); | 689 NOTREACHED(); |
| 711 return; | 690 return; |
| 712 } | 691 } |
| 713 SetNetworkProperty(service_path, | 692 NetworkHandler::Get()->managed_network_configuration_handler()->SetProperties( |
| 714 shill::kProviderHostProperty, | 693 service_path, *properties, |
| 715 new base::StringValue(server_hostname)); | 694 base::Bind(&base::DoNothing), |
| 716 } | 695 base::Bind(&ShillError, "SetProperties")); |
| 717 | |
| 718 void InternetOptionsHandler::SetPreferNetworkCallback( | |
| 719 const base::ListValue* args) { | |
| 720 std::string service_path; | |
| 721 bool prefer_network; | |
| 722 if (args->GetSize() < 2 || | |
| 723 !args->GetString(0, &service_path) || | |
| 724 !args->GetBoolean(1, &prefer_network)) { | |
| 725 NOTREACHED(); | |
| 726 return; | |
| 727 } | |
| 728 int priority = prefer_network ? kPreferredPriority : 0; | |
| 729 SetNetworkProperty(service_path, | |
| 730 shill::kPriorityProperty, | |
| 731 new base::FundamentalValue(priority)); | |
| 732 } | |
| 733 | |
| 734 void InternetOptionsHandler::SetAutoConnectCallback( | |
| 735 const base::ListValue* args) { | |
| 736 std::string service_path; | |
| 737 bool auto_connect; | |
| 738 if (args->GetSize() < 2 || | |
| 739 !args->GetString(0, &service_path) || | |
| 740 !args->GetBoolean(1, &auto_connect)) { | |
| 741 NOTREACHED(); | |
| 742 return; | |
| 743 } | |
| 744 SetNetworkProperty(service_path, | |
| 745 shill::kAutoConnectProperty, | |
| 746 new base::FundamentalValue(auto_connect)); | |
| 747 } | 696 } |
| 748 | 697 |
| 749 void InternetOptionsHandler::SetIPConfigCallback(const base::ListValue* args) { | 698 void InternetOptionsHandler::SetIPConfigCallback(const base::ListValue* args) { |
| 750 std::string service_path; | 699 std::string service_path; |
| 751 if (!args->GetString(0, &service_path)) { | 700 if (!args->GetString(0, &service_path)) { |
| 752 NOTREACHED(); | 701 NOTREACHED(); |
| 753 return; | 702 return; |
| 754 } | 703 } |
| 755 NetworkHandler::Get()->network_configuration_handler()->GetProperties( | 704 NetworkHandler::Get()->network_configuration_handler()->GetProperties( |
| 756 service_path, | 705 service_path, |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1003 dictionary->SetBoolean( | 952 dictionary->SetBoolean( |
| 1004 kTagWimaxAvailable, | 953 kTagWimaxAvailable, |
| 1005 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); | 954 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); |
| 1006 dictionary->SetBoolean( | 955 dictionary->SetBoolean( |
| 1007 kTagWimaxEnabled, | 956 kTagWimaxEnabled, |
| 1008 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); | 957 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); |
| 1009 } | 958 } |
| 1010 | 959 |
| 1011 } // namespace options | 960 } // namespace options |
| 1012 } // namespace chromeos | 961 } // namespace chromeos |
| OLD | NEW |