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 NetworkConfigurationObserver::SOURCE_USER_ACTION, | |
176 base::Bind(&base::DoNothing), | |
177 base::Bind(&ShillError, "SetNetworkProperty")); | |
178 } | |
179 | |
180 // 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 |
181 // NetworkList on the settings page. Ownership of the returned pointer is | 164 // NetworkList on the settings page. Ownership of the returned pointer is |
182 // transferred to the caller. | 165 // transferred to the caller. |
183 base::DictionaryValue* BuildNetworkDictionary( | 166 base::DictionaryValue* BuildNetworkDictionary( |
184 const NetworkState* network, | 167 const NetworkState* network, |
185 float icon_scale_factor, | 168 float icon_scale_factor, |
186 const PrefService* profile_prefs) { | 169 const PrefService* profile_prefs) { |
187 scoped_ptr<base::DictionaryValue> network_info = | 170 scoped_ptr<base::DictionaryValue> network_info = |
188 network_util::TranslateNetworkStateToONC(network); | 171 network_util::TranslateNetworkStateToONC(network); |
189 | 172 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 base::Unretained(this))); | 317 base::Unretained(this))); |
335 web_ui()->RegisterMessageCallback(kRemoveNetworkMessage, | 318 web_ui()->RegisterMessageCallback(kRemoveNetworkMessage, |
336 base::Bind(&InternetOptionsHandler::RemoveNetwork, | 319 base::Bind(&InternetOptionsHandler::RemoveNetwork, |
337 base::Unretained(this))); | 320 base::Unretained(this))); |
338 web_ui()->RegisterMessageCallback(kConfigureNetworkMessage, | 321 web_ui()->RegisterMessageCallback(kConfigureNetworkMessage, |
339 base::Bind(&InternetOptionsHandler::ConfigureNetwork, | 322 base::Bind(&InternetOptionsHandler::ConfigureNetwork, |
340 base::Unretained(this))); | 323 base::Unretained(this))); |
341 web_ui()->RegisterMessageCallback(kActivateNetworkMessage, | 324 web_ui()->RegisterMessageCallback(kActivateNetworkMessage, |
342 base::Bind(&InternetOptionsHandler::ActivateNetwork, | 325 base::Bind(&InternetOptionsHandler::ActivateNetwork, |
343 base::Unretained(this))); | 326 base::Unretained(this))); |
344 web_ui()->RegisterMessageCallback(kSetPreferNetworkMessage, | |
345 base::Bind(&InternetOptionsHandler::SetPreferNetworkCallback, | |
346 base::Unretained(this))); | |
347 web_ui()->RegisterMessageCallback(kSetAutoConnectMessage, | |
348 base::Bind(&InternetOptionsHandler::SetAutoConnectCallback, | |
349 base::Unretained(this))); | |
350 web_ui()->RegisterMessageCallback(kSetIPConfigMessage, | 327 web_ui()->RegisterMessageCallback(kSetIPConfigMessage, |
351 base::Bind(&InternetOptionsHandler::SetIPConfigCallback, | 328 base::Bind(&InternetOptionsHandler::SetIPConfigCallback, |
352 base::Unretained(this))); | 329 base::Unretained(this))); |
353 web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage, | 330 web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage, |
354 base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback, | 331 base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback, |
355 base::Unretained(this))); | 332 base::Unretained(this))); |
356 web_ui()->RegisterMessageCallback(kSetApnMessage, | 333 web_ui()->RegisterMessageCallback(kSetApnMessage, |
357 base::Bind(&InternetOptionsHandler::SetApnCallback, | 334 base::Bind(&InternetOptionsHandler::SetApnCallback, |
358 base::Unretained(this))); | 335 base::Unretained(this))); |
359 web_ui()->RegisterMessageCallback(kSetCarrierMessage, | 336 web_ui()->RegisterMessageCallback(kSetCarrierMessage, |
360 base::Bind(&InternetOptionsHandler::SetCarrierCallback, | 337 base::Bind(&InternetOptionsHandler::SetCarrierCallback, |
361 base::Unretained(this))); | 338 base::Unretained(this))); |
362 web_ui()->RegisterMessageCallback(kSimOperationMessage, | 339 web_ui()->RegisterMessageCallback(kSimOperationMessage, |
363 base::Bind(&InternetOptionsHandler::SimOperationCallback, | 340 base::Bind(&InternetOptionsHandler::SimOperationCallback, |
364 base::Unretained(this))); | 341 base::Unretained(this))); |
365 web_ui()->RegisterMessageCallback(kSetServerHostname, | |
366 base::Bind(&InternetOptionsHandler::SetServerHostnameCallback, | |
367 base::Unretained(this))); | |
368 | 342 |
369 // networkingPrivate methods | 343 // networkingPrivate methods |
370 web_ui()->RegisterMessageCallback(kDisableNetworkTypeMessage, | 344 web_ui()->RegisterMessageCallback(kDisableNetworkTypeMessage, |
371 base::Bind(&InternetOptionsHandler::DisableNetworkTypeCallback, | 345 base::Bind(&InternetOptionsHandler::DisableNetworkTypeCallback, |
372 base::Unretained(this))); | 346 base::Unretained(this))); |
373 web_ui()->RegisterMessageCallback(kEnableNetworkTypeMessage, | 347 web_ui()->RegisterMessageCallback(kEnableNetworkTypeMessage, |
374 base::Bind(&InternetOptionsHandler::EnableNetworkTypeCallback, | 348 base::Bind(&InternetOptionsHandler::EnableNetworkTypeCallback, |
375 base::Unretained(this))); | 349 base::Unretained(this))); |
376 web_ui()->RegisterMessageCallback(kGetManagedPropertiesMessage, | 350 web_ui()->RegisterMessageCallback(kGetManagedPropertiesMessage, |
377 base::Bind(&InternetOptionsHandler::GetManagedPropertiesCallback, | 351 base::Bind(&InternetOptionsHandler::GetManagedPropertiesCallback, |
378 base::Unretained(this))); | 352 base::Unretained(this))); |
379 web_ui()->RegisterMessageCallback(kRequestNetworkScanMessage, | 353 web_ui()->RegisterMessageCallback(kRequestNetworkScanMessage, |
380 base::Bind(&InternetOptionsHandler::RequestNetworkScanCallback, | 354 base::Bind(&InternetOptionsHandler::RequestNetworkScanCallback, |
381 base::Unretained(this))); | 355 base::Unretained(this))); |
382 web_ui()->RegisterMessageCallback(kStartConnectMessage, | 356 web_ui()->RegisterMessageCallback(kStartConnectMessage, |
383 base::Bind(&InternetOptionsHandler::StartConnectCallback, | 357 base::Bind(&InternetOptionsHandler::StartConnectCallback, |
384 base::Unretained(this))); | 358 base::Unretained(this))); |
385 web_ui()->RegisterMessageCallback(kStartDisconnectMessage, | 359 web_ui()->RegisterMessageCallback(kStartDisconnectMessage, |
386 base::Bind(&InternetOptionsHandler::StartDisconnectCallback, | 360 base::Bind(&InternetOptionsHandler::StartDisconnectCallback, |
387 base::Unretained(this))); | 361 base::Unretained(this))); |
| 362 web_ui()->RegisterMessageCallback(kSetPropertiesMessage, |
| 363 base::Bind(&InternetOptionsHandler::SetPropertiesCallback, |
| 364 base::Unretained(this))); |
388 } | 365 } |
389 | 366 |
390 void InternetOptionsHandler::ShowMorePlanInfoCallback( | 367 void InternetOptionsHandler::ShowMorePlanInfoCallback( |
391 const base::ListValue* args) { | 368 const base::ListValue* args) { |
392 if (!web_ui()) | 369 if (!web_ui()) |
393 return; | 370 return; |
394 std::string service_path; | 371 std::string service_path; |
395 if (args->GetSize() != 1 || !args->GetString(0, &service_path)) { | 372 if (args->GetSize() != 1 || !args->GetString(0, &service_path)) { |
396 NOTREACHED(); | 373 NOTREACHED(); |
397 return; | 374 return; |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
696 return; | 673 return; |
697 if (device->type() != shill::kTypeCellular) | 674 if (device->type() != shill::kTypeCellular) |
698 return; | 675 return; |
699 const NetworkState* network = | 676 const NetworkState* network = |
700 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType( | 677 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType( |
701 NetworkTypePattern::Cellular()); | 678 NetworkTypePattern::Cellular()); |
702 if (network && network->path() == details_path_) | 679 if (network && network->path() == details_path_) |
703 UpdateConnectionData(network->path()); | 680 UpdateConnectionData(network->path()); |
704 } | 681 } |
705 | 682 |
706 void InternetOptionsHandler::SetServerHostnameCallback( | 683 void InternetOptionsHandler::SetPropertiesCallback( |
707 const base::ListValue* args) { | 684 const base::ListValue* args) { |
708 std::string service_path, server_hostname; | 685 std::string service_path; |
| 686 const base::DictionaryValue* properties; |
709 if (args->GetSize() < 2 || | 687 if (args->GetSize() < 2 || |
710 !args->GetString(0, &service_path) || | 688 !args->GetString(0, &service_path) || |
711 !args->GetString(1, &server_hostname)) { | 689 !args->GetDictionary(1, &properties)) { |
712 NOTREACHED(); | 690 NOTREACHED(); |
713 return; | 691 return; |
714 } | 692 } |
715 SetNetworkProperty(service_path, | 693 NetworkHandler::Get()->managed_network_configuration_handler()->SetProperties( |
716 shill::kProviderHostProperty, | 694 service_path, *properties, |
717 new base::StringValue(server_hostname)); | 695 base::Bind(&base::DoNothing), |
718 } | 696 base::Bind(&ShillError, "SetProperties")); |
719 | |
720 void InternetOptionsHandler::SetPreferNetworkCallback( | |
721 const base::ListValue* args) { | |
722 std::string service_path; | |
723 bool prefer_network; | |
724 if (args->GetSize() < 2 || | |
725 !args->GetString(0, &service_path) || | |
726 !args->GetBoolean(1, &prefer_network)) { | |
727 NOTREACHED(); | |
728 return; | |
729 } | |
730 int priority = prefer_network ? kPreferredPriority : 0; | |
731 SetNetworkProperty(service_path, | |
732 shill::kPriorityProperty, | |
733 new base::FundamentalValue(priority)); | |
734 } | |
735 | |
736 void InternetOptionsHandler::SetAutoConnectCallback( | |
737 const base::ListValue* args) { | |
738 std::string service_path; | |
739 bool auto_connect; | |
740 if (args->GetSize() < 2 || | |
741 !args->GetString(0, &service_path) || | |
742 !args->GetBoolean(1, &auto_connect)) { | |
743 NOTREACHED(); | |
744 return; | |
745 } | |
746 SetNetworkProperty(service_path, | |
747 shill::kAutoConnectProperty, | |
748 new base::FundamentalValue(auto_connect)); | |
749 } | 697 } |
750 | 698 |
751 void InternetOptionsHandler::SetIPConfigCallback(const base::ListValue* args) { | 699 void InternetOptionsHandler::SetIPConfigCallback(const base::ListValue* args) { |
752 std::string service_path; | 700 std::string service_path; |
753 if (!args->GetString(0, &service_path)) { | 701 if (!args->GetString(0, &service_path)) { |
754 NOTREACHED(); | 702 NOTREACHED(); |
755 return; | 703 return; |
756 } | 704 } |
757 NetworkHandler::Get()->network_configuration_handler()->GetProperties( | 705 NetworkHandler::Get()->network_configuration_handler()->GetProperties( |
758 service_path, | 706 service_path, |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1006 dictionary->SetBoolean( | 954 dictionary->SetBoolean( |
1007 kTagWimaxAvailable, | 955 kTagWimaxAvailable, |
1008 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); | 956 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); |
1009 dictionary->SetBoolean( | 957 dictionary->SetBoolean( |
1010 kTagWimaxEnabled, | 958 kTagWimaxEnabled, |
1011 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); | 959 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); |
1012 } | 960 } |
1013 | 961 |
1014 } // namespace options | 962 } // namespace options |
1015 } // namespace chromeos | 963 } // namespace chromeos |
OLD | NEW |