diff options
Diffstat (limited to 'chromium/chrome/browser/resources/settings/internet_page')
32 files changed, 511 insertions, 332 deletions
diff --git a/chromium/chrome/browser/resources/settings/internet_page/compiled_resources.gyp b/chromium/chrome/browser/resources/settings/internet_page/compiled_resources.gyp index 23dfd984fe9..0b3580a40e1 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/compiled_resources.gyp +++ b/chromium/chrome/browser/resources/settings/internet_page/compiled_resources.gyp @@ -7,7 +7,8 @@ 'target_name': 'internet_page', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../third_party/closure_compiler/externs/networking_private_interface.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', '../../../../../ui/webui/resources/js/compiled_resources.gyp:assert', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', '../settings_page/settings_animated_pages.js' @@ -22,7 +23,10 @@ 'target_name': 'internet_detail_page', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../third_party/closure_compiler/externs/networking_private_interface.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/policy/cr_policy_network_behavior.js', + '../../../../../ui/webui/resources/js/compiled_resources.gyp:assert', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -35,7 +39,9 @@ 'target_name': 'internet_known_networks_page', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../third_party/closure_compiler/externs/networking_private_interface.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', + '../../../../../ui/webui/resources/js/compiled_resources.gyp:assert', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -48,7 +54,7 @@ 'target_name': 'network_apnlist', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -61,7 +67,7 @@ 'target_name': 'network_ip_config', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -74,7 +80,7 @@ 'target_name': 'network_nameservers', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -87,7 +93,8 @@ 'target_name': 'network_property_list', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/policy/cr_policy_network_behavior.js', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -100,7 +107,8 @@ 'target_name': 'network_proxy', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/policy/cr_policy_network_behavior.js', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -113,7 +121,7 @@ 'target_name': 'network_proxy_input', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -126,7 +134,7 @@ 'target_name': 'network_proxy_exclusions', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -139,7 +147,9 @@ 'target_name': 'network_siminfo', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../third_party/closure_compiler/externs/networking_private_interface.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', + '../../../../../ui/webui/resources/js/compiled_resources.gyp:assert', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -152,7 +162,9 @@ 'target_name': 'network_summary', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../third_party/closure_compiler/externs/networking_private_interface.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', + '../../../../../ui/webui/resources/js/compiled_resources.gyp:assert', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ @@ -165,7 +177,7 @@ 'target_name': 'network_summary_item', 'variables': { 'depends': [ - '../../../../../ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js', + '../../../../../ui/webui/resources/cr_elements/network/cr_onc_types.js', '../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data', ], 'externs': [ diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.css b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.css index 684a613eddf..f31caedc2ef 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.css +++ b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.css @@ -2,65 +2,52 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ -#titleDiv { - margin-bottom: 10px; +.section { + margin-bottom: 5px; } -#outerDiv { - margin: 0 40px; +iron-collapse { + margin: 10px; } -#networkIcon { +cr-network-icon { height: 32px; width: 32px; } -#networkName { +cr-policy-network-indicator { -webkit-margin-start: 10px; - font-size: 20px; - font-weight: bold; } +#networkName, #networkState { -webkit-margin-start: 10px; font-size: 20px; } -#networkState[connected] { - color: green; +#networkName { + font-weight: bold; } -#simInfoDiv { - margin-left: 10px; +#networkState[connected] { + color: green; } -#infoDiv { - margin-left: 10px; +#outerDiv { + margin: 10px 20px; } -#infoDiv span { - margin-bottom: 8px; +#ipAddressLabel { + -webkit-margin-end: 10px; + font-weight: bold; } #preferButton { - margin: 0 7px 8px -2px; + -webkit-margin-end: 8px; + -webkit-margin-start: -3px; padding: 0 } -#advancedDiv paper-button { - --paper-button: { - text-align: start; - }; -} - #proxyDiv { max-width: 500px; } - -paper-checkbox { - margin-bottom: 10px; -} - -cr-collapse { - margin: 10px; -} diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html index 9cd13af4ef6..0cf3f8fc4ef 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html +++ b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html @@ -1,13 +1,15 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/iron-collapse/iron-collapse.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-checkbox/paper-checkbox.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_collapse/cr_collapse.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_expand_button/cr_expand_button.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_network_icon.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_expand_button/cr_expand_button.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_network_icon.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_network_behavior.html"> +<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_network_indicator.html"> <link rel="import" href="network_apnlist.html"> <link rel="import" href="network_ip_config.html"> <link rel="import" href="network_nameservers.html"> @@ -15,14 +17,14 @@ <link rel="import" href="network_proxy.html"> <link rel="import" href="network_siminfo.html"> -<dom-module id="cr-settings-internet-detail-page"> - <link rel="import" type="css" href="chrome://md-settings/settings_page/settings_page.css"> +<dom-module id="settings-internet-detail-page"> + <link rel="import" type="css" href="chrome://md-settings/settings_shared.css"> <link rel="import" type="css" href="internet_detail_page.css"> <template> <div class="layout vertical"> <!-- Title section: Icon + name + connection state. --> <div id="titleDiv" class="layout horizontal center"> - <cr-network-icon id="networkIcon" network-state="[[networkProperties]]"> + <cr-network-icon network-state="[[networkProperties]]"> </cr-network-icon> <span id="networkName">[[getStateName_(networkProperties)]]</span> <span id="networkState" @@ -32,65 +34,79 @@ <div id="outerDiv" class="layout vertical"> <!-- For Cellular, show SIM info first. --> - <div id="simInfoDiv" class="layout vertical"> + <div class="layout vertical section"> <network-siminfo editable hidden$="[[!showCellularSim_(networkProperties)]]" network-properties="[[networkProperties]]" - on-siminfo-change="onNetworkPropertyChange_"> + on-siminfo-change="onNetworkPropertyChange_" + networking-private="[[networkingPrivate]]"> </network-siminfo> </div> <!-- Info and properties common to all networks. --> - <div id="infoDiv" class="layout vertical"> - <div class="layout horizontal" hidden$="[[!IPAddress]]"> - <span>IP Address:</span> + <div class="layout vertical"> + <div class="layout horizontal section" hidden$="[[!IPAddress]]"> + <span id="ipAddressLabel">IP Address:</span> <span>[[IPAddress]]</span> </div> - <span hidden$="[[!showShared_(networkProperties)]]"> - This network is shared with other users. - </span> - <div class="layout horizontal center" + <div class="section"> + <span hidden$="[[!showShared_(networkProperties)]]"> + This network is shared with other users. + </span> + </div> + <div class="layout horizontal center section" hidden$="[[!showPreferNetwork_(networkProperties)]]"> - <paper-icon-button id="preferButton" - toggles active="{{preferNetwork}}" + <paper-icon-button id="preferButton" toggles + active="{{preferNetwork}}" + disabled= + "[[isNetworkPolicyEnforced(networkProperties.Priority)]]" icon="[[getPreferredIcon_(preferNetwork)]]"> </paper-icon-button> <span>Prefer this network</span> + <cr-policy-network-indicator + property="[[networkProperties.Priority]]"> + </cr-policy-network-indicator> </div> - <paper-checkbox checked="{{autoConnect}}" + <div class="layout horizontal center section" hidden$="[[!showAutoConnect_(networkProperties)]]"> - Automatically connect to this network - </paper-checkbox> - + <paper-checkbox checked="{{autoConnect}}"> + Automatically connect to this network + </paper-checkbox> + <cr-policy-network-indicator + property="[[getManagedAutoConnect_(networkProperties)]]"> + </cr-policy-network-indicator> + </div> <!-- Properties to always show if present. --> - <network-property-list - fields="[[getInfoFields_(networkProperties)]]" - property-dict="[[networkProperties]]"> - </network-property-list> + <div class="section"> + <network-property-list + fields="[[getInfoFields_(networkProperties)]]" + property-dict="[[networkProperties]]"> + </network-property-list> + </div> </div> <!-- Button row: Advanced + Disconnect | Connect. --> - <div class="layout horizontal center"> + <div id="buttonDiv" class="layout horizontal center"> <paper-button toggles noink active="{{advancedExpanded}}" hidden$="[[!hasAdvancedOrDeviceFields_(networkProperties)]]"> Advanced </paper-button> <span class="flex"></span> <paper-button hidden$="[[!showViewAccount_(networkProperties)]]" - on-tap="onViewAccountClicked_"> + on-tap="onViewAccountTap_"> View Account </paper-button> <paper-button hidden$="[[!showActivate_(networkProperties)]]" - on-tap="onActivateClicked_"> + on-tap="onActivateTap_"> Activate </paper-button> <paper-button hidden$="[[!showConnect_(networkProperties)]]" - disabled="[[!enableConnect_(networkProperties)]]" - on-tap="onConnectClicked_"> + disabled="[[!enableConnect_(networkProperties, defaultNetwork)]]" + on-tap="onConnectTap_"> Connect </paper-button> <paper-button hidden$="[[!showDisconnect_(networkProperties)]]" - on-tap="onDisconnectClicked_"> + on-tap="onDisconnectTap_"> Disconnect </paper-button> </div> @@ -98,9 +114,9 @@ <!-- Advanced section --> <div id="advancedDiv" class="layout vertical" hidden$="[[!hasAdvancedOrDeviceFields_(networkProperties)]]"> - <cr-collapse opened="[[advancedExpanded]]"> + <iron-collapse opened="[[advancedExpanded]]"> <!-- Advanced properties --> - <div id="advancedInfoDiv" class="layout vertical"> + <div id="advancedInfoDiv" class="layout vertical section"> <network-property-list fields="[[getAdvancedFields_(networkProperties)]]" property-dict="[[networkProperties]]"> @@ -108,13 +124,15 @@ </div> <!-- Network (APN, address, nameservers) --> - <div id="addressDiv" class="layout vertical" + <div id="addressDiv" class="layout vertical section" hidden$="[[!hasNetworkSection_(networkProperties)]]"> - <paper-button toggles noink active="{{addressExpanded}}"> - Network - </paper-button> - <cr-collapse opened="[[addressExpanded]]"> - <div class="layout vertical flex"> + <div> + <paper-button toggles noink active="{{addressExpanded}}"> + Network + </paper-button> + </div> + <iron-collapse opened="[[addressExpanded]]"> + <div class="layout vertical"> <network-apnlist editable hidden$="[[!isType_(networkProperties, NetworkType.CELLULAR)]]" network-properties="[[networkProperties]]" @@ -129,40 +147,43 @@ on-nameservers-change="onIPConfigChange_"> </network-nameservers> </div> - </cr-collapse> + </iron-collapse> </div> <!-- Proxy --> - <div class="layout vertical" + <div class="layout vertical section" hidden$="[[!hasNetworkSection_(networkProperties)]]"> - <paper-button toggles noink active="{{proxyExpanded}}"> - Proxy - </paper-button> - <cr-collapse opened="[[proxyExpanded]]"> - <div id="proxyDiv" class="layout vertical flex"> + <div> + <paper-button toggles noink active="{{proxyExpanded}}"> + Proxy + </paper-button> + </div> + <iron-collapse opened="[[proxyExpanded]]"> + <div id="proxyDiv" class="layout vertical"> <network-proxy editable network-properties="[[networkProperties]]" on-proxy-change="onProxyChange_"> </network-proxy> </div> - </cr-collapse> + </iron-collapse> </div> <!-- Device properties --> - <div class="layout vertical" + <div class="layout vertical section" hidden$="[[!hasDeviceFields_(networkProperties)]]"> - <paper-button toggles noink active="{{deviceExpanded}}"> - Device - </paper-button> - <cr-collapse opened="[[deviceExpanded]]"> + <div> + <paper-button toggles noink active="{{deviceExpanded}}"> + Device + </paper-button> + </div> + <iron-collapse opened="[[deviceExpanded]]"> <network-property-list fields="[[getDeviceFields_(networkProperties)]]" property-dict="[[networkProperties]]"> </network-property-list> - <!-- TODO(stevenjb): Cellular SIM --> - </cr-collapse> + </iron-collapse> </div> - </cr-collapse> + </iron-collapse> </div> </div> </div> diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js index 8fa56e8db11..e44c0b329c6 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js +++ b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js @@ -4,11 +4,11 @@ /** * @fileoverview - * 'cr-settings-internet-detail' is the settings subpage containing details + * 'settings-internet-detail' is the settings subpage containing details * for a network. * * @group Chrome Settings Elements - * @element cr-settings-internet-detail + * @element settings-internet-detail */ (function() { 'use strict'; @@ -16,7 +16,9 @@ /** @const */ var CARRIER_VERIZON = 'Verizon Wireless'; Polymer({ - is: 'cr-settings-internet-detail-page', + is: 'settings-internet-detail-page', + + behaviors: [CrPolicyNetworkBehavior], properties: { /** @@ -64,6 +66,15 @@ Polymer({ }, /** + * Highest priority connected network or null. + * @type {?CrOnc.NetworkStateProperties} + */ + defaultNetwork: { + type: Object, + value: null + }, + + /** * Object providing network type values for data binding. * @const */ @@ -78,6 +89,14 @@ Polymer({ }, readOnly: true }, + + /** + * Interface for networkingPrivate calls, passed from internet_page. + * @type {NetworkingPrivate} + */ + networkingPrivate: { + type: Object, + }, }, /** @@ -90,13 +109,13 @@ Polymer({ /** @override */ attached: function() { this.networksChangedListener_ = this.onNetworksChangedEvent_.bind(this); - chrome.networkingPrivate.onNetworksChanged.addListener( + this.networkingPrivate.onNetworksChanged.addListener( this.networksChangedListener_); }, /** @override */ detached: function() { - chrome.networkingPrivate.onNetworksChanged.removeListener( + this.networkingPrivate.onNetworksChanged.removeListener( this.networksChangedListener_); }, @@ -173,7 +192,7 @@ Polymer({ getNetworkDetails_: function() { if (!this.guid) return; - chrome.networkingPrivate.getManagedProperties( + this.networkingPrivate.getManagedProperties( this.guid, this.getPropertiesCallback_.bind(this)); }, @@ -199,7 +218,7 @@ Polymer({ setNetworkProperties_: function(onc) { if (!this.guid) return; - chrome.networkingPrivate.setProperties(this.guid, onc, function() { + this.networkingPrivate.setProperties(this.guid, onc, function() { if (chrome.runtime.lastError) { // An error typically indicates invalid input; request the properties // to update any invalid fields. @@ -244,8 +263,7 @@ Polymer({ * @private */ isConnectedState_: function(properties) { - return !!properties && properties.ConnectionState == - CrOnc.ConnectionState.CONNECTED; + return properties.ConnectionState == CrOnc.ConnectionState.CONNECTED; }, /** @@ -254,7 +272,7 @@ Polymer({ * @private */ showConnect_: function(properties) { - return !!properties && properties.Type != CrOnc.Type.ETHERNET && + return properties.Type != CrOnc.Type.ETHERNET && properties.ConnectionState == CrOnc.ConnectionState.NOT_CONNECTED; }, @@ -309,15 +327,18 @@ Polymer({ }, /** + * @param {!CrOnc.NetworkProperties} properties + * @param {?CrOnc.NetworkStateProperties} defaultNetwork * @return {boolean} Whether or not to enable the network connect button. * @private */ - enableConnect_: function(properties) { + enableConnect_: function(properties, defaultNetwork) { if (!properties || !this.showConnect_(properties)) return false; if (properties.Type == CrOnc.Type.CELLULAR && CrOnc.isSimLocked(properties)) return false; - // TODO(stevenjb): For VPN, check connected state of any network. + if (properties.Type == CrOnc.Type.VPN && !defaultNetwork) + return false; return true; }, @@ -327,41 +348,41 @@ Polymer({ * @private */ showDisconnect_: function(properties) { - return !!properties && properties.Type != CrOnc.Type.ETHERNET && + return properties.Type != CrOnc.Type.ETHERNET && properties.ConnectionState != CrOnc.ConnectionState.NOT_CONNECTED; }, /** - * Callback when the Connect button is clicked. + * Callback when the Connect button is tapped. * @private */ - onConnectClicked_: function() { - chrome.networkingPrivate.startConnect(this.guid); + onConnectTap_: function() { + this.networkingPrivate.startConnect(this.guid); }, /** - * Callback when the Disconnect button is clicked. + * Callback when the Disconnect button is tapped. * @private */ - onDisconnectClicked_: function() { - chrome.networkingPrivate.startDisconnect(this.guid); + onDisconnectTap_: function() { + this.networkingPrivate.startDisconnect(this.guid); }, /** - * Callback when the Activate button is clicked. + * Callback when the Activate button is tapped. * @private */ - onActivateClicked_: function() { - chrome.networkingPrivate.startActivate(this.guid); + onActivateTap_: function() { + this.networkingPrivate.startActivate(this.guid); }, /** - * Callback when the View Account button is clicked. + * Callback when the View Account button is tapped. * @private */ - onViewAccountClicked_: function() { + onViewAccountTap_: function() { // startActivate() will show the account page for activated networks. - chrome.networkingPrivate.startActivate(this.guid); + this.networkingPrivate.startActivate(this.guid); }, /** @@ -380,7 +401,7 @@ Polymer({ } else if (field == 'SIMLockStatus') { CrOnc.setTypeProperty(onc, 'SIMLockStatus', value); } else { - console.error('Unexpected property change event: ', field); + console.error('Unexpected property change event: ' + field); return; } this.setNetworkProperties_(onc); @@ -487,8 +508,7 @@ Polymer({ * @private */ showShared_: function(properties) { - return !!properties && (properties.Source == 'Device' || - properties.Source == 'DevicePolicy'); + return properties.Source == 'Device' || properties.Source == 'DevicePolicy'; }, /** @@ -497,19 +517,28 @@ Polymer({ * @private */ showAutoConnect_: function(properties) { - return !!properties && properties.Type != CrOnc.Type.ETHERNET && + return properties.Type != CrOnc.Type.ETHERNET && properties.Source != CrOnc.Source.NONE; }, /** * @param {!CrOnc.NetworkProperties} properties + * @return {!CrOnc.ManagedProperty|undefined} Managed AutoConnect property. + * @private + */ + getManagedAutoConnect_: function(properties) { + return CrOnc.getManagedAutoConnect(properties); + }, + + /** + * @param {!CrOnc.NetworkProperties} properties * @return {boolean} True if the prefer network checkbox should be shown. * @private */ showPreferNetwork_: function(properties) { // TODO(stevenjb): Resolve whether or not we want to allow "preferred" for // properties.Type == CrOnc.Type.ETHERNET. - return !!properties && properties.Source != CrOnc.Source.NONE; + return properties.Source != CrOnc.Source.NONE; }, /** @@ -637,7 +666,7 @@ Polymer({ * @private */ hasNetworkSection_: function(properties) { - return !!properties && properties.Type != CrOnc.Type.VPN; + return properties.Type != CrOnc.Type.VPN; }, /** @@ -647,7 +676,7 @@ Polymer({ * @private */ isType_: function(properties, type) { - return !!properties && properties.Type == type; + return properties.Type == type; }, /** diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html b/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html index ed58dcae95b..6dd5f1e65dd 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html +++ b/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html @@ -2,10 +2,10 @@ <link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_network_list.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_network_list.html"> -<dom-module id="cr-settings-internet-known-networks-page"> - <link rel="import" type="css" href="chrome://md-settings/settings_page/settings_page.css"> +<dom-module id="settings-internet-known-networks-page"> + <link rel="import" type="css" href="chrome://md-settings/settings_shared.css"> <link rel="import" type="css" href="internet_known_networks_page.css"> <template> <div class="layout vertical"> diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.js b/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.js index 46eddc548e8..45133344e59 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.js +++ b/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.js @@ -4,14 +4,14 @@ /** * @fileoverview - * 'cr-settings-internet-known-networks' is the settings subpage listing the + * 'settings-internet-known-networks' is the settings subpage listing the * known networks for a type (currently always WiFi). * * @group Chrome Settings Elements - * @element cr-settings-internet-known-networks + * @element settings-internet-known-networks */ Polymer({ - is: 'cr-settings-internet-known-networks-page', + is: 'settings-internet-known-networks-page', properties: { /** @@ -20,7 +20,6 @@ Polymer({ */ networkType: { type: String, - value: CrOnc.Type.WI_FI, observer: 'networkTypeChanged_', }, @@ -39,7 +38,15 @@ Polymer({ networkStateList: { type: Array, value: function() { return []; } - } + }, + + /** + * Interface for networkingPrivate calls, passed from internet_page. + * @type {NetworkingPrivate} + */ + networkingPrivate: { + type: Object, + }, }, /** @@ -52,13 +59,13 @@ Polymer({ /** @override */ attached: function() { this.networksChangedListener_ = this.onNetworksChangedEvent_.bind(this); - chrome.networkingPrivate.onNetworksChanged.addListener( + this.networkingPrivate.onNetworksChanged.addListener( this.networksChangedListener_); }, /** @override */ detached: function() { - chrome.networkingPrivate.onNetworksChanged.removeListener( + this.networkingPrivate.onNetworksChanged.removeListener( this.networksChangedListener_); }, @@ -91,7 +98,7 @@ Polymer({ visible: false, configured: true }; - chrome.networkingPrivate.getNetworks( + this.networkingPrivate.getNetworks( filter, function(states) { this.networkStateList = states; }.bind(this)); }, @@ -114,7 +121,7 @@ Polymer({ var state = event.detail; if (!state.GUID) return; - chrome.networkingPrivate.forgetNetwork(state.GUID); + this.networkingPrivate.forgetNetwork(state.GUID); }, /** @@ -128,6 +135,6 @@ Polymer({ return; var preferred = state.Priority > 0; var onc = {Priority: preferred ? 0 : 1}; - chrome.networkingPrivate.setProperties(state.GUID, onc); + this.networkingPrivate.setProperties(state.GUID, onc); }, }); diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_page.html b/chromium/chrome/browser/resources/settings/internet_page/internet_page.html index f23d503f768..ccaa873e0de 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/internet_page.html +++ b/chromium/chrome/browser/resources/settings/internet_page/internet_page.html @@ -1,38 +1,44 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animatable.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_onc_types.html"> <link rel="import" href="chrome://md-settings/settings_page/settings_animated_pages.html"> <link rel="import" href="chrome://md-settings/settings_page/settings_subheader.html"> <link rel="import" href="internet_detail_page.html"> <link rel="import" href="internet_known_networks_page.html"> <link rel="import" href="network_summary.html"> -<dom-module id="cr-settings-internet-page"> +<dom-module id="settings-internet-page"> <link rel="import" type="css" - href="chrome://md-settings/settings_page/settings_page.css"> + href="chrome://md-settings/settings_shared.css"> <template> <settings-animated-pages id="pages" current-route="{{currentRoute}}" section="internet"> - <neon-animatable id=""> + <neon-animatable id="main"> <network-summary on-show-detail="onShowDetail_" - on-show-known-networks="onShowKnownNetworks_"> + default-network="{{defaultNetwork}}" + on-show-known-networks="onShowKnownNetworks_" + networking-private="[[networkingPrivate]]"> </network-summary> </neon-animatable> <neon-animatable id="network-detail"> <settings-subheader i18n-values="page-title:internetDetailPageTitle"> </settings-subheader> - <cr-settings-internet-detail-page guid="[[detailGuid]]" - on-close="onBackTap_"> - </cr-settings-internet-detail-page> + <settings-internet-detail-page + guid="[[detailGuid]]" + default-network="[[defaultNetwork]]" + on-close="onBackTap_" + networking-private="[[networkingPrivate]]"> + </settings-internet-detail-page> </neon-animatable> <neon-animatable id="known-networks"> <settings-subheader i18n-values="page-title:internetKnownNetworksPageTitle"> </settings-subheader> - <cr-settings-internet-known-networks-page + <settings-internet-known-networks-page network-type="[[knownNetworksType]]" - on-show-detail="onShowDetail_"> - </cr-settings-internet-known-networks-page> + on-show-detail="onShowDetail_" + networking-private="[[networkingPrivate]]"> + </settings-internet-known-networks-page> </neon-animatable> </settings-animated-pages> </template> diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_page.js b/chromium/chrome/browser/resources/settings/internet_page/internet_page.js index dd66f4be6b1..49e8c1219fb 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/internet_page.js +++ b/chromium/chrome/browser/resources/settings/internet_page/internet_page.js @@ -4,22 +4,22 @@ /** * @fileoverview - * 'cr-settings-internet-page' is the settings page containing internet + * 'settings-internet-page' is the settings page containing internet * settings. * * Example: * * <core-animated-pages> - * <cr-settings-internet-page prefs='{{prefs}}'> - * </cr-settings-internet-page> + * <settings-internet-page prefs='{{prefs}}'> + * </settings-internet-page> * ... other pages ... * </core-animated-pages> * * @group Chrome Settings Elements - * @element cr-settings-internet-page + * @element settings-internet-page */ Polymer({ - is: 'cr-settings-internet-page', + is: 'settings-internet-page', properties: { /** @@ -43,6 +43,15 @@ Polymer({ knownNetworksType: { type: String, }, + + /** + * Interface for networkingPrivate calls. May be overriden by tests. + * @type {NetworkingPrivate} + */ + networkingPrivate: { + type: Object, + value: chrome.networkingPrivate, + }, }, /** diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.css b/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.css index 233cc8cc644..3f7caed2235 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.css +++ b/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.css @@ -6,9 +6,12 @@ margin-bottom: 10px; } +#selectDiv { + margin-bottom: 10px; +} + #selectDiv select { - font-size: 16px; - margin: 10px 0 10px 5px; + margin-left: 10px; padding: 5px; } diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.html b/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.html index 2d53bbe777e..9a7abd48fcc 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.html @@ -1,6 +1,6 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_onc_types.html"> <link rel="import" href="network_property_list.html"> <dom-module id="network-apnlist"> @@ -25,7 +25,7 @@ edit-field-types="[[otherApnEditTypes_]]" on-property-change="onOtherApnChange_"> </network-property-list> - <paper-button on-tap="onSaveOther_">Save</paper-button> + <paper-button on-tap="onSaveOtherTap_">Save</paper-button> </div> </div> </template> diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.js b/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.js index e95ff7df797..67bf2e25a65 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.js +++ b/chromium/chrome/browser/resources/settings/internet_page/network_apnlist.js @@ -206,15 +206,15 @@ Polymer({ */ onOtherApnChange_: function(event) { this.set('otherApn.' + event.detail.field, event.detail.value); - // Don't send a change event for 'Other' until the 'Save' button is clicked. + // Don't send a change event for 'Other' until the 'Save' button is tapped. }, /** - * Event triggered when the Other APN 'Save' button is clicked. + * Event triggered when the Other APN 'Save' button is tapped. * @param {Event} event * @private */ - onSaveOther_: function(event) { + onSaveOtherTap_: function(event) { this.sendApnChange_(this.selectedApn); }, diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.html b/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.html index 0245787f5ee..6db5873adf1 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.html @@ -1,6 +1,6 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-checkbox/paper-checkbox.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_onc_types.html"> <link rel="import" href="network_property_list.html"> <dom-module id="network-ip-config"> diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.css b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.css index 3dda85caf16..d94c3c98b51 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.css +++ b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.css @@ -2,10 +2,11 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ +#selectTypeDiv { + margin: 10px 0; +} + select { - font-size: 16px; - margin-bottom: 10px; - margin-top: 10px; padding: 5px; } diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.html b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.html index 3b1b6f1bf43..3932b64d91d 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.html @@ -1,12 +1,12 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_onc_types.html"> <dom-module id="network-nameservers"> <link rel="import" type="css" href="network_nameservers.css"> <template> <div id="outer" class="layout vertical"> - <div> + <div id="selectTypeDiv"> <!-- TODO(stevenjb): Use cr-dropdown-menu once available. --> <select id="type" on-change="onTypeChange_"> <template is="dom-repeat" items="[[nameserverTypeNames_]]"> diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_property_list.css b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.css index 4bd06dc3d56..bdb1712e846 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_property_list.css +++ b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.css @@ -3,9 +3,12 @@ * found in the LICENSE file. */ span { - @apply(--paper-font-subhead); - @apply(--paper-input-container-input); - margin: 0 5px 5px 0; + -webkit-margin-end: 5px; + margin-bottom: 5px; +} + +cr-policy-network-indicator { + margin-bottom: 5px; } span.fill { @@ -16,5 +19,11 @@ span.fill { } paper-input-container { - margin: -8px 0 -3px 5px; + -webkit-margin-start: 5px; + margin-bottom: -3px; + margin-top: -12px; +} + +#outerDiv { + padding: 5px 0; } diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_property_list.html b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.html index 79db6d9f822..426b2f8d1e4 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_property_list.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.html @@ -1,12 +1,13 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_onc_types.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/paper-styles.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_network_behavior.html"> +<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_network_indicator.html"> <dom-module name="network-property-list"> <link rel="import" type="css" href="network_property_list.css"> <template> - <div class="layout horizontal"> + <div id="outerDiv" class="layout horizontal"> <div class="layout vertical"> <template is="dom-repeat" items="[[fields]]"> <div class="layout horizontal" @@ -21,6 +22,8 @@ <div class="layout horizontal" hidden$="[[!showNoEdit_(propertyDict, editFieldTypes, item)]]"> <span>[[getPropertyValue_(propertyDict, item)]]</span> + <cr-policy-network-indicator property="[[propertyDict]]"> + </cr-policy-network-indicator> </div> <div class="layout horizontal" hidden$= "[[!showEdit_(propertyDict, editFieldTypes, item, 'String')]]"> diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_property_list.js b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.js index 87b64216d51..b988501a46d 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_property_list.js +++ b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.js @@ -14,9 +14,12 @@ Polymer({ is: 'network-property-list', + behaviors: [CrPolicyNetworkBehavior], + properties: { /** * The dictionary containing the properties to display. + * @type {!Object|undefined} */ propertyDict: { type: Object @@ -80,18 +83,18 @@ Polymer({ }, /** - * @param {!Object|undefined} propertyDict + * @param {!Object} propertyDict * @param {string} key The property key. * @return {boolean} Whether or not the property exists in |propertyDict|. * @private */ hasPropertyValue_: function(propertyDict, key) { - var value = (propertyDict && this.get(key, propertyDict)) || undefined; - return (value !== undefined && value !== ''); + var value = this.get(key, propertyDict); + return value !== undefined && value !== ''; }, /** - * @param {!Object|undefined} propertyDict + * @param {!Object} propertyDict * @param {!Object} editFieldTypes The editFieldTypes object. * @param {string} key The property key. * @return {boolean} Whether or not to show the property. Editable properties @@ -105,7 +108,7 @@ Polymer({ }, /** - * @param {!Object|undefined} propertyDict + * @param {!Object} propertyDict * @param {!Object} editFieldTypes The editFieldTypes object. * @param {string} key The property key. * @return {boolean} True if |key| exists in |propertiesDict| and is not @@ -115,12 +118,15 @@ Polymer({ showNoEdit_: function(propertyDict, editFieldTypes, key) { if (!this.hasPropertyValue_(propertyDict, key)) return false; - var editType = editFieldTypes[key]; - return !editType; + var property = /** @type {!CrOnc.ManagedProperty|undefined} */( + this.get(key, propertyDict)); + if (this.isNetworkPolicyEnforced(property)) + return true; + return !editFieldTypes[key]; }, /** - * @param {!Object|undefined} propertyDict + * @param {!Object} propertyDict * @param {!Object} editFieldTypes The editFieldTypes object. * @param {string} key The property key. * @param {string} type The field type. @@ -129,18 +135,22 @@ Polymer({ * @private */ showEdit_: function(propertyDict, editFieldTypes, key, type) { + if (!this.hasPropertyValue_(propertyDict, key)) + return false; + var property = /** @type {!CrOnc.ManagedProperty|undefined} */( + this.get(key, propertyDict)); + if (this.isNetworkPolicyEnforced(property)) + return false; return editFieldTypes[key] == type; }, /** - * @param {!Object|undefined} propertyDict + * @param {!Object} propertyDict * @param {string} key The property key. * @return {string} The text to display for the property value. * @private */ getPropertyValue_: function(propertyDict, key) { - if (!propertyDict) - return ''; var value = this.get(key, propertyDict); if (value === undefined) return ''; diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy.css b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.css index 9098be477e7..a4ff258515c 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy.css +++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.css @@ -6,19 +6,23 @@ display: inline-block; } +#selectTypeDiv { + margin: 10px 0; +} + select { - font-size: 16px; - margin-bottom: 10px; - margin-top: 10px; padding: 5px; } span { - @apply(--paper-font-subhead); - @apply(--paper-input-container-input); margin: 5px; } +cr-policy-network-indicator { + -webkit-margin-end: 10px; + mwrgin-bottom: 5px; +} + paper-checkbox { margin-bottom: 10px; } diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy.html b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.html index 61ae5fdc3c7..9e5f5a0c8cb 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.html @@ -2,8 +2,9 @@ <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-checkbox/paper-checkbox.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/paper-styles.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_network_behavior.html"> +<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_network_indicator.html"> <link rel="import" href="network_property_list.html"> <link rel="import" href="network_proxy_input.html"> <link rel="import" href="network_proxy_exclusions.html"> @@ -13,8 +14,17 @@ <template> <div id="outer" class="layout vertical flex"> <!-- TODO(stevenjb): Use cr-dropdown-menu once available. --> - <div> - <select id="selectType" on-change="onTypeChange_"> + <div class="layout horizontal center" hidden$= + "[[!isNetworkPolicyControlled(networkProperties.ProxySettings.Type)]]"> + <cr-policy-network-indicator + property="[[networkProperties.ProxySettings.Type]]"> + </cr-policy-network-indicator> + <span>This proxy is enforced by your administrator.</span> + </div> + + <div id="selectTypeDiv"> + <select id="selectType" on-change="onTypeChange_" + disabled$="[[isNetworkPolicyEnforced(networkProperties.ProxySettings.Type)]]"> <template is="dom-repeat" items="[[proxyTypes_]]"> <option value="[[item]]">[[proxyTypeDesc_(item)]]</option> </template> @@ -25,6 +35,7 @@ class="layout horizontal"> <span>Autoconfiguration URL:</span> <paper-input no-label-float class="flex" value="{{proxy.PAC}}" + disabled="[[isNetworkPolicyEnforced(networkProperties.ProxySettings.PAC)]]"> on-blur="onProxyInputChange_"> </paper-input> </div> @@ -40,25 +51,30 @@ Use the same proxy for all protocols </paper-checkbox> <div hidden$="[[!useSameProxy]]" class="layout vertical"> - <network-proxy-input editable="[[editable]]" + <network-proxy-input + editable="[[isPropertyEditable_(editable, networkProperties, 'ProxySettings.Manual.HTTPProxy')]]" value="{{proxy.Manual.HTTPProxy}}" label="Proxy" on-proxy-change="onProxyInputChange_"> </network-proxy-input> </div> <div hidden$="[[useSameProxy]]" class="layout vertical"> - <network-proxy-input editable="[[editable]]" + <network-proxy-input + editable="[[isPropertyEditable_(editable, networkProperties, 'ProxySettings.Manual.HTTPProxy)')]]" value="{{proxy.Manual.HTTPProxy}}" label="HTTP Proxy" on-proxy-change="onProxyInputChange_"> </network-proxy-input> - <network-proxy-input editable="[[editable]]" + <network-proxy-input + editable="[[isPropertyEditable_(editable, networkProperties, 'ProxySettings.Manual.SecureHTTPProxy)')]]" value="{{proxy.Manual.SecureHTTPProxy}}" label="Secure HTTP Proxy" on-proxy-change="onProxyInputChange_"> </network-proxy-input> - <network-proxy-input editable="[[editable]]" + <network-proxy-input + editable="[[isPropertyEditable_(editable, networkProperties, 'ProxySettings.Manual.FTPProxy)')]]" value="{{proxy.Manual.FTPProxy}}" label="FTP Proxy" on-proxy-change="onProxyInputChange_"> </network-proxy-input> - <network-proxy-input editable="[[editable]]" + <network-proxy-input + editable="[[isPropertyEditable_(editable, networkProperties, 'ProxySettings.Manual.SOCKS)')]]" value="{{proxy.Manual.SOCKS}}" label="SOCKS host" on-proxy-change="onProxyInputChange_"> </network-proxy-input> @@ -71,7 +87,7 @@ <div class="layout horizontal baseline"> <paper-input id="proxyExclusion" class="flex" no-label-float> </paper-input> - <paper-button on-tap="onAddProxyExclusion_"> + <paper-button on-tap="onAddProxyExclusionTap_"> Add Exception </paper-button> </div> diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy.js b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.js index c7c02e631d2..1d9fd113100 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy.js +++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.js @@ -9,6 +9,8 @@ Polymer({ is: 'network-proxy', + behaviors: [CrPolicyNetworkBehavior], + properties: { /** * The network properties dictionary containing the proxy properties to @@ -220,7 +222,7 @@ Polymer({ * @param {Event} event The add proxy exclusion event. * @private */ - onAddProxyExclusion_: function(event) { + onAddProxyExclusionTap_: function(event) { var value = this.$.proxyExclusion.value; if (!value) return; @@ -256,6 +258,21 @@ Polymer({ }, /** + * @param {boolean} editable + * @param {!CrOnc.NetworkProperties} networkProperties + * @param {string} key + * @return {boolean} Whether the property is editable. + * @private + */ + isPropertyEditable_: function(editable, networkProperties, key) { + if (!editable) + return false; + var property = /** @type {!CrOnc.ManagedProperty|undefined} */( + this.get(key, networkProperties)); + return !this.isNetworkPolicyEnforced(property); + }, + + /** * @param {string} property The property to test * @param {string} value The value to test against * @return {boolean} True if property == value diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html index 07b9273001a..35dad0e2fa7 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html @@ -1,6 +1,5 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/paper-styles.html"> <dom-module id="network-proxy-exclusions"> <link rel="import" type="css" href="network_proxy_exclusions.css"> @@ -9,7 +8,7 @@ <template is="dom-repeat" items="[[exclusions]]"> <div class="layout horizontal"> <span class="flex">[[item]]</span> - <iron-icon icon="clear" on-click="removeItem_"></iron-icon> + <iron-icon icon="clear" on-tap="onRemoveTap_"></iron-icon> </div> </template> </div> diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js index b765e1d8218..2d408b7cf92 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js +++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js @@ -29,7 +29,7 @@ Polymer({ * @param {!{model: !{index: number}}} event * @private */ - removeItem_: function(event) { + onRemoveTap_: function(event) { var index = event.model.index; this.splice('exclusions', index, 1); this.fire('proxy-change'); diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.css b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.css index 16302dead55..518cedf12b9 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.css +++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.css @@ -7,8 +7,6 @@ } span { - @apply(--paper-font-subhead); - @apply(--paper-input-container-input); margin-right: 5px; } diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.html b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.html index 6eeef81a2b3..21f196cd237 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.html @@ -1,6 +1,5 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/paper-styles.html"> <dom-module id="network-proxy-input"> <link rel="import" type="css" href="network_proxy_input.css"> diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.css b/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.css index 2f31161e170..df0d574c71b 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.css +++ b/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.css @@ -2,16 +2,17 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ -span { - margin-right: 10px; +iron-icon { + -webkit-margin-end: 5px; + -webkit-margin-start: -3px; } -#outerDiv { - margin-bottom: 10px; +paper-button { + margin: 0; } -#lockedDiv iron-icon { - margin: 0 5px 0 -2px; +span { + -webkit-margin-end: 10px; } #lockedDiv span { @@ -20,16 +21,16 @@ span { } #lockedDiv paper-input { - margin-left: 10px; + -webkit-margin-start: 10px; width: 80px; } #unlockSimDialog paper-input { - margin-left: 5px; + -webkit-margin-start: 5px; } #unlockSimDialog span { - margin-left: 5px; + -webkit-margin-start: 5px; } .pin { diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.html b/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.html index 03450ad7a0b..cb13629bbfb 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.html @@ -1,10 +1,11 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/notification-icons.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-checkbox/paper-checkbox.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-dialog/paper-dialog.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_onc_types.html"> <link rel="import" href="network_property_list.html"> <dom-module id="network-siminfo"> @@ -12,19 +13,19 @@ <template> <div id="outerDiv" class="layout vertical"> <div class="layout horizontal center" - hidden$="[[state.Cellular.SIMPresent]]"> + hidden$="[[networkProperties.Cellular.SIMPresent]]"> <!-- SIM missing UI --> - <iron-icon icon="sim-card-alert"></iron-icon> + <iron-icon icon="notification:sim-card-alert"></iron-icon> <span>Missing SIM card</span> </div> <div class="layout vertical" - hidden$="[[!state.Cellular.SIMPresent]]"> + hidden$="[[!networkProperties.Cellular.SIMPresent]]"> <div id="lockedDiv" class="layout horizontal center" hidden$="[[!isSimLocked_(networkProperties)]]"> <!-- SIM locked --> <iron-icon icon="lock"></iron-icon> <span>SIM card is locked.</span> - <paper-button on-tap="unlockPin_">Unlock</paper-button> + <paper-button on-tap="onUnlockPinTap_">Unlock</paper-button> </div> <div class="layout vertical" hidden$="[[isSimLocked_(networkProperties)]]"> @@ -37,7 +38,7 @@ <div class="layout horizontal center" hidden$="[[!networkProperties.Cellular.SIMLockStatus.LockEnabled]]"> <!-- SIM lock enabled --> - <paper-button on-tap="onChangePin_">Change PIN</paper-button> + <paper-button on-tap="onChangePinTap_">Change PIN</paper-button> </div> </div> </div> diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.js b/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.js index d93268cdccb..3d3bfd4ea14 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.js +++ b/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.js @@ -49,6 +49,14 @@ Polymer({ type: Object, value: ErrorType.NONE }, + + /** + * Interface for networkingPrivate calls, passed from internet_page. + * @type {NetworkingPrivate} + */ + networkingPrivate: { + type: Object, + }, }, sendSimLockEnabled_: false, @@ -135,7 +143,7 @@ Polymer({ currentPin: pin, requirePin: this.sendSimLockEnabled_ }); - chrome.networkingPrivate.setCellularSimState(guid, simState, function() { + this.networkingPrivate.setCellularSimState(guid, simState, function() { if (chrome.runtime.lastError) { this.error = ErrorType.INCORRECT_PIN; } else { @@ -150,7 +158,7 @@ Polymer({ * @param {Event} event * @private */ - onChangePin_: function(event) { + onChangePinTap_: function(event) { if (!this.networkProperties || !this.networkProperties.Cellular) return; this.error = ErrorType.NONE; @@ -188,7 +196,7 @@ Polymer({ currentPin: this.$.changePinOld.value, newPin: newPin }); - chrome.networkingPrivate.setCellularSimState(guid, simState, function() { + this.networkingPrivate.setCellularSimState(guid, simState, function() { if (chrome.runtime.lastError) { this.error = ErrorType.INCORRECT_PIN; } else { @@ -203,7 +211,7 @@ Polymer({ * @param {Event} event * @private */ - unlockPin_: function(event) { + onUnlockPinTap_: function(event) { this.error = ErrorType.NONE; this.$.unlockPinDialog.open(); }, @@ -231,7 +239,7 @@ Polymer({ if (!this.validatePin_(pin)) return; - chrome.networkingPrivate.unlockCellularSim(guid, pin, '', function() { + this.networkingPrivate.unlockCellularSim(guid, pin, '', function() { if (chrome.runtime.lastError) { this.error = ErrorType.INCORRECT_PIN; } else { @@ -280,7 +288,7 @@ Polymer({ if (!this.validatePin_(pin, this.$.unlockPin2.value)) return; - chrome.networkingPrivate.unlockCellularSim(guid, pin, puk, function() { + this.networkingPrivate.unlockCellularSim(guid, pin, puk, function() { if (chrome.runtime.lastError) { this.error = ErrorType.INCORRECT_PUK; } else { diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary.css b/chromium/chrome/browser/resources/settings/internet_page/network_summary.css deleted file mode 100644 index 8ef22124226..00000000000 --- a/chromium/chrome/browser/resources/settings/internet_page/network_summary.css +++ /dev/null @@ -1,7 +0,0 @@ -/* Copyright 2015 The Chromium Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. */ - -#summary { - padding-right: 40px; -} diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary.html b/chromium/chrome/browser/resources/settings/internet_page/network_summary.html index 9e3f8d757be..505d61e361c 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_summary.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary.html @@ -1,9 +1,8 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_onc_types.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_onc_types.html"> <link rel="import" href="network_summary_item.html"> <dom-module id="network-summary"> - <link rel="import" type="css" href="network_summary.css"> <template> <div id="summary" class="layout vertical"> <network-summary-item id="ethernet" diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary.js b/chromium/chrome/browser/resources/settings/internet_page/network_summary.js index 3086221ba1b..d7ad7b568c2 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_summary.js +++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary.js @@ -59,6 +59,16 @@ Polymer({ properties: { /** + * Highest priority connected network or null. + * @type {?CrOnc.NetworkStateProperties} + */ + defaultNetwork: { + type: Object, + value: null, + notify: true + }, + + /** * The device state for each network device type. * @type {DeviceStateObject} */ @@ -83,6 +93,14 @@ Polymer({ networkStateLists: { type: Object, value: function() { return {}; }, + }, + + /** + * Interface for networkingPrivate calls, passed from internet_page. + * @type {NetworkingPrivate} + */ + networkingPrivate: { + type: Object, } }, @@ -123,28 +141,28 @@ Polymer({ this.networkListChangedListener_ = this.onNetworkListChangedEvent_.bind(this); - chrome.networkingPrivate.onNetworkListChanged.addListener( + this.networkingPrivate.onNetworkListChanged.addListener( this.networkListChangedListener_); this.deviceStateListChangedListener_ = this.onDeviceStateListChangedEvent_.bind(this); - chrome.networkingPrivate.onDeviceStateListChanged.addListener( + this.networkingPrivate.onDeviceStateListChanged.addListener( this.deviceStateListChangedListener_); this.networksChangedListener_ = this.onNetworksChangedEvent_.bind(this); - chrome.networkingPrivate.onNetworksChanged.addListener( + this.networkingPrivate.onNetworksChanged.addListener( this.networksChangedListener_); }, /** @override */ detached: function() { - chrome.networkingPrivate.onNetworkListChanged.removeListener( + this.networkingPrivate.onNetworkListChanged.removeListener( this.networkListChangedListener_); - chrome.networkingPrivate.onDeviceStateListChanged.removeListener( + this.networkingPrivate.onDeviceStateListChanged.removeListener( this.deviceStateListChangedListener_); - chrome.networkingPrivate.onNetworksChanged.removeListener( + this.networkingPrivate.onNetworksChanged.removeListener( this.networksChangedListener_); }, @@ -154,9 +172,11 @@ Polymer({ * @private */ onWiFiExpanded_: function(event) { - this.getNetworkStates_(); // Get the latest network states (only). - if (event.detail.expanded) - chrome.networkingPrivate.requestNetworkScan(); + if (!event.detail.expanded) + return; + // Get the latest network states (only). + this.getNetworkStates_(); + this.networkingPrivate.requestNetworkScan(); }, /** @@ -166,7 +186,7 @@ Polymer({ */ onSelected_: function(event) { var state = event.detail; - if (state.ConnectionState == CrOnc.ConnectionState.NOT_CONNECTED) { + if (this.canConnect_(state)) { this.connectToNetwork_(state); return; } @@ -182,9 +202,9 @@ Polymer({ */ onDeviceEnabledToggled_: function(event) { if (event.detail.enabled) - chrome.networkingPrivate.enableNetworkType(event.detail.type); + this.networkingPrivate.enableNetworkType(event.detail.type); else - chrome.networkingPrivate.disableNetworkType(event.detail.type); + this.networkingPrivate.disableNetworkType(event.detail.type); }, /** @@ -207,42 +227,66 @@ Polymer({ onNetworksChangedEvent_: function(networkIds) { networkIds.forEach(function(id) { if (id in this.networkIds_) { - chrome.networkingPrivate.getState( - id, - function(state) { - if (chrome.runtime.lastError) { - if (chrome.runtime.lastError.message != - 'Error.NetworkUnavailable') { - console.error('Unexpected networkingPrivate.getState error:', - chrome.runtime.lastError, 'For:', id); - } - return; - } - // Async call, ensure id still exists. - if (!this.networkIds_[id]) - return; - if (!state) { - this.networkIds_[id] = undefined; - return; - } - this.updateNetworkState_(state.Type, state); - }.bind(this)); + this.networkingPrivate.getState( + id, this.getStateCallback_.bind(this, id)); } }, this); }, /** + * Determines whether or not a network state can be connected to. + * @param {!CrOnc.NetworkStateProperties} state The network state. + * @private + */ + canConnect_: function(state) { + if (state.Type == CrOnc.Type.ETHERNET || + state.Type == CrOnc.Type.VPN && !this.defaultNetwork) { + return false; + } + return state.ConnectionState == CrOnc.ConnectionState.NOT_CONNECTED; + }, + + /** + * networkingPrivate.getState event callback. + * @param {string} id The id of the requested state. + * @param {!chrome.networkingPrivate.NetworkStateProperties} state + * @private + */ + getStateCallback_: function(id, state) { + if (chrome.runtime.lastError) { + var message = chrome.runtime.lastError.message; + if (message != 'Error.NetworkUnavailable') { + console.error( + 'Unexpected networkingPrivate.getState error: ' + message + + ' For: ' + id); + } + return; + } + // Async call, ensure id still exists. + if (!this.networkIds_[id]) + return; + if (!state) { + this.networkIds_[id] = undefined; + return; + } + this.updateNetworkState_(state.Type, state); + }, + + /** * Handles UI requests to connect to a network. * TODO(stevenjb): Handle Cellular activation, etc. * @param {!CrOnc.NetworkStateProperties} state The network state. * @private */ connectToNetwork_: function(state) { - chrome.networkingPrivate.startConnect(state.GUID, function() { - if (chrome.runtime.lastError && - chrome.runtime.lastError != 'connecting') { - console.error('Unexpected networkingPrivate.startConnect error:', - chrome.runtime.lastError); + this.networkingPrivate.startConnect(state.GUID, function() { + if (chrome.runtime.lastError) { + var message = chrome.runtime.lastError.message; + if (message != 'connecting') { + console.error( + 'Unexpected networkingPrivate.startConnect error: ' + message + + 'For: ' + state.GUID); + } } }); }, @@ -255,48 +299,51 @@ Polymer({ */ getNetworkLists_: function() { // First get the device states. - chrome.networkingPrivate.getDeviceStates( - function(states) { - this.getDeviceStatesCallback_(states); + this.networkingPrivate.getDeviceStates( + function(deviceStates) { // Second get the network states. - this.getNetworkStates_(); + this.getNetworkStates_(deviceStates); }.bind(this)); }, /** * Requests the list of network states from Chrome. Updates networkStates and * networkStateLists once the results are returned from Chrome. + * @param {!Array<!DeviceStateProperties>=} opt_deviceStates + * Optional list of state properties for all available devices. * @private */ - getNetworkStates_: function() { + getNetworkStates_: function(opt_deviceStates) { var filter = { networkType: chrome.networkingPrivate.NetworkType.ALL, visible: true, configured: false }; - chrome.networkingPrivate.getNetworks( - filter, this.getNetworksCallback_.bind(this)); + this.networkingPrivate.getNetworks(filter, function(networkStates) { + this.updateNetworkStates_(networkStates, opt_deviceStates); + }.bind(this)); }, /** - * networkingPrivate.getDeviceStates callback. - * @param {!Array<!DeviceStateProperties>} states The state properties for all - * available devices. + * Called after network states are received from getNetworks. + * @param {!Array<!CrOnc.NetworkStateProperties>} networkStates The state + * properties for all visible networks. + * @param {!Array<!DeviceStateProperties>=} opt_deviceStates + * Optional list of state properties for all available devices. If not + * defined the existing list of device states will be used. * @private */ - getDeviceStatesCallback_: function(states) { - var newStates = /** @type {!DeviceStateObject} */({}); - states.forEach(function(state) { newStates[state.Type] = state; }); - this.deviceStates = newStates; - }, + updateNetworkStates_: function(networkStates, opt_deviceStates) { + var newDeviceStates; + if (opt_deviceStates) { + newDeviceStates = /** @type {!DeviceStateObject} */({}); + opt_deviceStates.forEach(function(state) { + newDeviceStates[state.Type] = state; + }); + } else { + newDeviceStates = this.deviceStates; + } - /** - * networkingPrivate.getNetworksState callback. - * @param {!Array<!CrOnc.NetworkStateProperties>} states The state properties - * for all visible networks. - * @private - */ - getNetworksCallback_: function(states) { // Clear any current networks. this.networkIds_ = {}; @@ -312,21 +359,28 @@ Polymer({ VPN: [] }; - states.forEach(function(state) { + var firstConnectedNetwork = null; + networkStates.forEach(function(state) { var type = state.Type; if (!foundTypes[type]) { foundTypes[type] = true; this.updateNetworkState_(type, state); + if (!firstConnectedNetwork && state.Type != CrOnc.Type.VPN && + state.ConnectionState == CrOnc.ConnectionState.CONNECTED) { + firstConnectedNetwork = state; + } } networkStateLists[type].push(state); }, this); + this.defaultNetwork = firstConnectedNetwork; + // Set any types with a deviceState and no network to a default state, // and any types not found to undefined. NETWORK_TYPES.forEach(function(type) { if (!foundTypes[type]) { var defaultState = undefined; - if (this.deviceStates[type]) + if (newDeviceStates[type]) defaultState = {GUID: '', Type: type}; this.updateNetworkState_(type, defaultState); } @@ -336,9 +390,13 @@ Polymer({ // Create a VPN entry in deviceStates if there are any VPN networks. if (networkStateLists.VPN && networkStateLists.VPN.length > 0) { - var vpn = {Type: CrOnc.Type.VPN, State: 'Enabled'}; - this.set('deviceStates.VPN', vpn); + newDeviceStates.VPN = /** @type {DeviceStateProperties} */ ({ + Type: CrOnc.Type.VPN, + State: chrome.networkingPrivate.DeviceStateType.ENABLED + }); } + + this.deviceStates = newDeviceStates; }, /** diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html index 9ab31df9e0a..897787cb6ad 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html +++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html @@ -2,16 +2,16 @@ <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-spinner/paper-spinner.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-toggle-button/paper-toggle-button.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_expand_button/cr_expand_button.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_network_list.html"> -<link rel="import" href="chrome://resources/cr_elements/v1_0/network/cr_network_list_item.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_expand_button/cr_expand_button.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_network_list.html"> +<link rel="import" href="chrome://resources/cr_elements/network/cr_network_list_item.html"> <dom-module name="network-summary-item"> <link rel="import" type="css" href="network_summary_item.css"> <template> <div class="layout vertical" hidden$="[[isHidden]]"> <div id="details" class="layout horizontal center" - on-click="onDetailsClicked_"> + on-tap="onDetailsTap_"> <cr-network-list-item id="detailsItem" network-state="[[networkState]]"> </cr-network-list-item> @@ -26,7 +26,7 @@ <paper-toggle-button id="deviceEnabledButton" checked="[[deviceIsEnabled_(deviceState)]]" class$="[[getDeviceEnabledButtonClass_(deviceState)]]" - on-tap="onDeviceEnabledToggled_"> + on-tap="onDeviceEnabledTap_"> </paper-toggle-button> </div> </div> @@ -34,13 +34,12 @@ <cr-network-list id="networkList" max-height="[[maxHeight]]" networks="[[networkStateList]]" - on-selected="onListItemSelected_" opened="{{expanded}}"> </cr-network-list> <div class="layout horizontal"> <paper-button hidden$="[[!showKnownNetworks_(networkState, expanded)]]" - on-tap="onKnownNetworksClicked_"> + on-tap="onKnownNetworksTap_"> Known networks </paper-button> </div> diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js index 67e7a1b0e4c..f363bf44bd8 100644 --- a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js +++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js @@ -83,7 +83,7 @@ Polymer({ */ deviceStateChanged_: function() { this.updateSelectable_(); - if (!this.deviceIsEnabled_(this.deviceState)) + if (this.expanded && !this.deviceIsEnabled_(this.deviceState)) this.expanded = false; }, @@ -168,11 +168,11 @@ Polymer({ }, /** - * Event triggered when the details div is clicked. + * Event triggered when the details div is tapped. * @param {Event} event The enable button event. * @private */ - onDetailsClicked_: function(event) { + onDetailsTap_: function(event) { if ((event.target.id == 'expandListButton') || (this.deviceState && !this.deviceIsEnabled_(this.deviceState))) { // Already handled or disabled, do nothing. @@ -188,34 +188,24 @@ Polymer({ }, /** - * Event triggered when the known networks button is clicked. + * Event triggered when the known networks button is tapped. * @private */ - onKnownNetworksClicked_: function() { + onKnownNetworksTap_: function() { this.fire('show-known-networks', {type: CrOnc.Type.WI_FI}); }, /** - * Event triggered when a network-list-item is the network list is selected. - * @param {!{detail: !CrOnc.NetworkStateProperties}} event - * @private - */ - onListItemSelected_: function(event) { - var state = event.detail; - this.fire('selected', state); - }, - - /** * Event triggered when the enable button is toggled. - * @param {!Object} event The enable button event. + * @param {!Event} event * @private */ - onDeviceEnabledToggled_: function(event) { + onDeviceEnabledTap_: function(event) { var deviceIsEnabled = this.deviceIsEnabled_(this.deviceState); var type = this.deviceState ? this.deviceState.Type : ''; this.fire('device-enabled-toggled', {enabled: !deviceIsEnabled, type: type}); - // Make sure this does not propagate to onDetailsClicked_. + // Make sure this does not propagate to onDetailsTap_. event.stopPropagation(); }, |