| 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 18 matching lines...) Expand all Loading... |
| 29 #include "chrome/browser/chromeos/options/network_property_ui_data.h" | 29 #include "chrome/browser/chromeos/options/network_property_ui_data.h" |
| 30 #include "chrome/browser/chromeos/settings/cros_settings.h" | 30 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 31 #include "chrome/browser/chromeos/sim_dialog_delegate.h" | 31 #include "chrome/browser/chromeos/sim_dialog_delegate.h" |
| 32 #include "chrome/browser/chromeos/ui/choose_mobile_network_dialog.h" | 32 #include "chrome/browser/chromeos/ui/choose_mobile_network_dialog.h" |
| 33 #include "chrome/browser/chromeos/ui/mobile_config_ui.h" | 33 #include "chrome/browser/chromeos/ui/mobile_config_ui.h" |
| 34 #include "chrome/browser/chromeos/ui_proxy_config_service.h" | 34 #include "chrome/browser/chromeos/ui_proxy_config_service.h" |
| 35 #include "chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler
.h" | 35 #include "chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler
.h" |
| 36 #include "chrome/browser/ui/webui/options/chromeos/internet_options_handler_stri
ngs.h" | 36 #include "chrome/browser/ui/webui/options/chromeos/internet_options_handler_stri
ngs.h" |
| 37 #include "chromeos/chromeos_switches.h" | 37 #include "chromeos/chromeos_switches.h" |
| 38 #include "chromeos/network/device_state.h" | 38 #include "chromeos/network/device_state.h" |
| 39 #include "chromeos/network/favorite_state.h" | |
| 40 #include "chromeos/network/managed_network_configuration_handler.h" | 39 #include "chromeos/network/managed_network_configuration_handler.h" |
| 41 #include "chromeos/network/network_configuration_handler.h" | 40 #include "chromeos/network/network_configuration_handler.h" |
| 42 #include "chromeos/network/network_connection_handler.h" | 41 #include "chromeos/network/network_connection_handler.h" |
| 43 #include "chromeos/network/network_device_handler.h" | 42 #include "chromeos/network/network_device_handler.h" |
| 44 #include "chromeos/network/network_event_log.h" | 43 #include "chromeos/network/network_event_log.h" |
| 45 #include "chromeos/network/network_ip_config.h" | 44 #include "chromeos/network/network_ip_config.h" |
| 46 #include "chromeos/network/network_profile.h" | 45 #include "chromeos/network/network_profile.h" |
| 47 #include "chromeos/network/network_profile_handler.h" | 46 #include "chromeos/network/network_profile_handler.h" |
| 48 #include "chromeos/network/network_state.h" | 47 #include "chromeos/network/network_state.h" |
| 49 #include "chromeos/network/network_state_handler.h" | 48 #include "chromeos/network/network_state_handler.h" |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 return kTagLoggedInUserPublicAccount; | 285 return kTagLoggedInUserPublicAccount; |
| 287 case LoginState::LOGGED_IN_USER_LOCALLY_MANAGED: | 286 case LoginState::LOGGED_IN_USER_LOCALLY_MANAGED: |
| 288 return kTagLoggedInUserLocallyManaged; | 287 return kTagLoggedInUserLocallyManaged; |
| 289 case LoginState::LOGGED_IN_USER_KIOSK_APP: | 288 case LoginState::LOGGED_IN_USER_KIOSK_APP: |
| 290 return kTagLoggedInUserKioskApp; | 289 return kTagLoggedInUserKioskApp; |
| 291 } | 290 } |
| 292 NOTREACHED(); | 291 NOTREACHED(); |
| 293 return std::string(); | 292 return std::string(); |
| 294 } | 293 } |
| 295 | 294 |
| 296 bool HasPolicyForFavorite(const FavoriteState* favorite, | 295 void SetCommonNetworkInfo(const NetworkState* state, |
| 297 const PrefService* profile_prefs) { | |
| 298 return onc::HasPolicyForFavoriteNetwork( | |
| 299 profile_prefs, g_browser_process->local_state(), *favorite); | |
| 300 } | |
| 301 | |
| 302 bool HasPolicyForNetwork(const NetworkState* network, | |
| 303 const PrefService* profile_prefs) { | |
| 304 const FavoriteState* favorite = | |
| 305 NetworkHandler::Get() | |
| 306 ->network_state_handler() | |
| 307 ->GetFavoriteStateFromServicePath(network->path(), | |
| 308 true /* configured_only */); | |
| 309 if (!favorite) | |
| 310 return false; | |
| 311 return HasPolicyForFavorite(favorite, profile_prefs); | |
| 312 } | |
| 313 | |
| 314 void SetCommonNetworkInfo(const ManagedState* state, | |
| 315 const std::string& icon_url, | 296 const std::string& icon_url, |
| 316 base::DictionaryValue* network_info) { | 297 base::DictionaryValue* network_info) { |
| 317 network_info->SetString(kNetworkInfoKeyIconURL, icon_url); | 298 network_info->SetString(kNetworkInfoKeyIconURL, icon_url); |
| 318 | 299 |
| 319 std::string name = state->name(); | 300 std::string name = state->name(); |
| 320 if (state->Matches(NetworkTypePattern::Ethernet())) { | 301 if (state->Matches(NetworkTypePattern::Ethernet())) { |
| 321 name = internet_options_strings::NetworkDeviceTypeString( | 302 name = internet_options_strings::NetworkDeviceTypeString( |
| 322 shill::kTypeEthernet); | 303 shill::kTypeEthernet); |
| 323 } | 304 } |
| 324 network_info->SetString(kNetworkInfoKeyNetworkName, name); | 305 network_info->SetString(kNetworkInfoKeyNetworkName, name); |
| 325 network_info->SetString(kNetworkInfoKeyNetworkType, state->type()); | 306 network_info->SetString(kNetworkInfoKeyNetworkType, state->type()); |
| 326 network_info->SetString(kNetworkInfoKeyServicePath, state->path()); | 307 network_info->SetString(kNetworkInfoKeyServicePath, state->path()); |
| 327 } | 308 } |
| 328 | 309 |
| 329 // Builds a dictionary with network information and an icon used for the | 310 // Builds a dictionary with network information and an icon used for the |
| 330 // NetworkList on the settings page. Ownership of the returned pointer is | 311 // NetworkList on the settings page. Ownership of the returned pointer is |
| 331 // transferred to the caller. | 312 // transferred to the caller. |
| 332 base::DictionaryValue* BuildNetworkDictionary( | 313 base::DictionaryValue* BuildNetworkDictionary( |
| 333 const NetworkState* network, | 314 const NetworkState* network, |
| 334 float icon_scale_factor, | 315 float icon_scale_factor, |
| 335 const PrefService* profile_prefs) { | 316 const PrefService* profile_prefs) { |
| 336 scoped_ptr<base::DictionaryValue> network_info(new base::DictionaryValue()); | 317 scoped_ptr<base::DictionaryValue> network_info(new base::DictionaryValue()); |
| 337 network_info->SetBoolean(kNetworkInfoKeyConnectable, network->connectable()); | 318 if (network->visible()) { |
| 338 network_info->SetBoolean(kNetworkInfoKeyConnected, | 319 network_info->SetBoolean(kNetworkInfoKeyConnectable, |
| 339 network->IsConnectedState()); | 320 network->connectable()); |
| 340 network_info->SetBoolean(kNetworkInfoKeyConnecting, | 321 network_info->SetBoolean(kNetworkInfoKeyConnected, |
| 341 network->IsConnectingState()); | 322 network->IsConnectedState()); |
| 342 network_info->SetBoolean(kNetworkInfoKeyPolicyManaged, | 323 network_info->SetBoolean(kNetworkInfoKeyConnecting, |
| 343 HasPolicyForNetwork(network, profile_prefs)); | 324 network->IsConnectingState()); |
| 325 } else { |
| 326 network_info->SetBoolean(kNetworkInfoKeyConnectable, false); |
| 327 network_info->SetBoolean(kNetworkInfoKeyConnected, false); |
| 328 network_info->SetBoolean(kNetworkInfoKeyConnecting, false); |
| 329 } |
| 330 bool has_policy = onc::HasPolicyForNetwork( |
| 331 profile_prefs, g_browser_process->local_state(), *network); |
| 332 network_info->SetBoolean(kNetworkInfoKeyPolicyManaged, has_policy); |
| 344 | 333 |
| 345 std::string icon_url = ash::network_icon::GetImageUrlForNetwork( | 334 std::string icon_url = ash::network_icon::GetImageUrlForNetwork( |
| 346 network, ash::network_icon::ICON_TYPE_LIST, icon_scale_factor); | 335 network, ash::network_icon::ICON_TYPE_LIST, icon_scale_factor); |
| 347 SetCommonNetworkInfo(network, icon_url, network_info.get()); | 336 SetCommonNetworkInfo(network, icon_url, network_info.get()); |
| 348 return network_info.release(); | 337 return network_info.release(); |
| 349 } | 338 } |
| 350 | 339 |
| 351 base::DictionaryValue* BuildFavoriteDictionary( | |
| 352 const FavoriteState* favorite, | |
| 353 float icon_scale_factor, | |
| 354 const PrefService* profile_prefs) { | |
| 355 scoped_ptr<base::DictionaryValue> network_info(new base::DictionaryValue()); | |
| 356 network_info->SetBoolean(kNetworkInfoKeyConnectable, false); | |
| 357 network_info->SetBoolean(kNetworkInfoKeyConnected, false); | |
| 358 network_info->SetBoolean(kNetworkInfoKeyConnecting, false); | |
| 359 network_info->SetBoolean(kNetworkInfoKeyPolicyManaged, | |
| 360 HasPolicyForFavorite(favorite, profile_prefs)); | |
| 361 | |
| 362 std::string icon_url = ash::network_icon::GetImageUrlForDisconnectedNetwork( | |
| 363 ash::network_icon::ICON_TYPE_LIST, favorite->type(), icon_scale_factor); | |
| 364 SetCommonNetworkInfo(favorite, icon_url, network_info.get()); | |
| 365 return network_info.release(); | |
| 366 } | |
| 367 | |
| 368 // Pulls IP information out of a shill service properties dictionary. If | 340 // Pulls IP information out of a shill service properties dictionary. If |
| 369 // |static_ip| is true, then it fetches "StaticIP.*" properties. If not, then it | 341 // |static_ip| is true, then it fetches "StaticIP.*" properties. If not, then it |
| 370 // fetches "SavedIP.*" properties. Caller must take ownership of returned | 342 // fetches "SavedIP.*" properties. Caller must take ownership of returned |
| 371 // dictionary. If non-NULL, |ip_parameters_set| returns a count of the number | 343 // dictionary. If non-NULL, |ip_parameters_set| returns a count of the number |
| 372 // of IP routing parameters that get set. | 344 // of IP routing parameters that get set. |
| 373 base::DictionaryValue* BuildIPInfoDictionary( | 345 base::DictionaryValue* BuildIPInfoDictionary( |
| 374 const base::DictionaryValue& shill_properties, | 346 const base::DictionaryValue& shill_properties, |
| 375 bool static_ip, | 347 bool static_ip, |
| 376 int* routing_parameters_set) { | 348 int* routing_parameters_set) { |
| 377 std::string address_key; | 349 std::string address_key; |
| (...skipping 1353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1731 BuildNetworkDictionary(network, | 1703 BuildNetworkDictionary(network, |
| 1732 web_ui()->GetDeviceScaleFactor(), | 1704 web_ui()->GetDeviceScaleFactor(), |
| 1733 Profile::FromWebUI(web_ui())->GetPrefs())); | 1705 Profile::FromWebUI(web_ui())->GetPrefs())); |
| 1734 return list; | 1706 return list; |
| 1735 } | 1707 } |
| 1736 | 1708 |
| 1737 base::ListValue* InternetOptionsHandler::GetWirelessList() { | 1709 base::ListValue* InternetOptionsHandler::GetWirelessList() { |
| 1738 base::ListValue* list = new base::ListValue(); | 1710 base::ListValue* list = new base::ListValue(); |
| 1739 | 1711 |
| 1740 NetworkStateHandler::NetworkStateList networks; | 1712 NetworkStateHandler::NetworkStateList networks; |
| 1741 NetworkHandler::Get()->network_state_handler()->GetNetworkListByType( | 1713 NetworkHandler::Get()->network_state_handler()->GetVisibleNetworkListByType( |
| 1742 NetworkTypePattern::Wireless(), &networks); | 1714 NetworkTypePattern::Wireless(), &networks); |
| 1743 for (NetworkStateHandler::NetworkStateList::const_iterator iter = | 1715 for (NetworkStateHandler::NetworkStateList::const_iterator iter = |
| 1744 networks.begin(); iter != networks.end(); ++iter) { | 1716 networks.begin(); iter != networks.end(); ++iter) { |
| 1745 list->Append( | 1717 list->Append( |
| 1746 BuildNetworkDictionary(*iter, | 1718 BuildNetworkDictionary(*iter, |
| 1747 web_ui()->GetDeviceScaleFactor(), | 1719 web_ui()->GetDeviceScaleFactor(), |
| 1748 Profile::FromWebUI(web_ui())->GetPrefs())); | 1720 Profile::FromWebUI(web_ui())->GetPrefs())); |
| 1749 } | 1721 } |
| 1750 | 1722 |
| 1751 return list; | 1723 return list; |
| 1752 } | 1724 } |
| 1753 | 1725 |
| 1754 base::ListValue* InternetOptionsHandler::GetVPNList() { | 1726 base::ListValue* InternetOptionsHandler::GetVPNList() { |
| 1755 base::ListValue* list = new base::ListValue(); | 1727 base::ListValue* list = new base::ListValue(); |
| 1756 | 1728 |
| 1757 NetworkStateHandler::NetworkStateList networks; | 1729 NetworkStateHandler::NetworkStateList networks; |
| 1758 NetworkHandler::Get()->network_state_handler()->GetNetworkListByType( | 1730 NetworkHandler::Get()->network_state_handler()->GetVisibleNetworkListByType( |
| 1759 NetworkTypePattern::VPN(), &networks); | 1731 NetworkTypePattern::VPN(), &networks); |
| 1760 for (NetworkStateHandler::NetworkStateList::const_iterator iter = | 1732 for (NetworkStateHandler::NetworkStateList::const_iterator iter = |
| 1761 networks.begin(); iter != networks.end(); ++iter) { | 1733 networks.begin(); iter != networks.end(); ++iter) { |
| 1762 list->Append( | 1734 list->Append( |
| 1763 BuildNetworkDictionary(*iter, | 1735 BuildNetworkDictionary(*iter, |
| 1764 web_ui()->GetDeviceScaleFactor(), | 1736 web_ui()->GetDeviceScaleFactor(), |
| 1765 Profile::FromWebUI(web_ui())->GetPrefs())); | 1737 Profile::FromWebUI(web_ui())->GetPrefs())); |
| 1766 } | 1738 } |
| 1767 | 1739 |
| 1768 return list; | 1740 return list; |
| 1769 } | 1741 } |
| 1770 | 1742 |
| 1771 base::ListValue* InternetOptionsHandler::GetRememberedList() { | 1743 base::ListValue* InternetOptionsHandler::GetRememberedList() { |
| 1772 base::ListValue* list = new base::ListValue(); | 1744 base::ListValue* list = new base::ListValue(); |
| 1773 | 1745 |
| 1774 NetworkStateHandler::FavoriteStateList favorites; | 1746 NetworkStateHandler::NetworkStateList networks; |
| 1775 NetworkHandler::Get()->network_state_handler()->GetFavoriteList(&favorites); | 1747 NetworkHandler::Get()->network_state_handler()->GetNetworkListByType( |
| 1776 for (NetworkStateHandler::FavoriteStateList::const_iterator iter = | 1748 NetworkTypePattern::Default(), |
| 1777 favorites.begin(); iter != favorites.end(); ++iter) { | 1749 true /* configured_only */, |
| 1778 const FavoriteState* favorite = *iter; | 1750 false /* visible_only */, |
| 1779 if (favorite->type() != shill::kTypeWifi && | 1751 0 /* no limit */, |
| 1780 favorite->type() != shill::kTypeVPN) | 1752 &networks); |
| 1753 for (NetworkStateHandler::NetworkStateList::const_iterator iter = |
| 1754 networks.begin(); iter != networks.end(); ++iter) { |
| 1755 const NetworkState* network = *iter; |
| 1756 if (network->type() != shill::kTypeWifi && |
| 1757 network->type() != shill::kTypeVPN) |
| 1781 continue; | 1758 continue; |
| 1782 list->Append( | 1759 list->Append( |
| 1783 BuildFavoriteDictionary(favorite, | 1760 BuildNetworkDictionary(network, |
| 1784 web_ui()->GetDeviceScaleFactor(), | 1761 web_ui()->GetDeviceScaleFactor(), |
| 1785 Profile::FromWebUI(web_ui())->GetPrefs())); | 1762 Profile::FromWebUI(web_ui())->GetPrefs())); |
| 1786 } | 1763 } |
| 1787 | 1764 |
| 1788 return list; | 1765 return list; |
| 1789 } | 1766 } |
| 1790 | 1767 |
| 1791 void InternetOptionsHandler::FillNetworkInfo( | 1768 void InternetOptionsHandler::FillNetworkInfo( |
| 1792 base::DictionaryValue* dictionary) { | 1769 base::DictionaryValue* dictionary) { |
| 1793 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); | 1770 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); |
| 1794 dictionary->Set(kTagWiredList, GetWiredList()); | 1771 dictionary->Set(kTagWiredList, GetWiredList()); |
| 1795 dictionary->Set(kTagWirelessList, GetWirelessList()); | 1772 dictionary->Set(kTagWirelessList, GetWirelessList()); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1818 dictionary->SetBoolean( | 1795 dictionary->SetBoolean( |
| 1819 kTagWimaxAvailable, | 1796 kTagWimaxAvailable, |
| 1820 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); | 1797 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); |
| 1821 dictionary->SetBoolean( | 1798 dictionary->SetBoolean( |
| 1822 kTagWimaxEnabled, | 1799 kTagWimaxEnabled, |
| 1823 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); | 1800 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); |
| 1824 } | 1801 } |
| 1825 | 1802 |
| 1826 } // namespace options | 1803 } // namespace options |
| 1827 } // namespace chromeos | 1804 } // namespace chromeos |
| OLD | NEW |