summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/resources/settings/internet_page
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/resources/settings/internet_page')
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/compiled_resources.gyp38
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.css49
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html133
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js93
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html6
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.js27
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_page.html28
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_page.js19
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_apnlist.css7
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_apnlist.html4
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_apnlist.js6
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_ip_config.html2
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_nameservers.css7
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_nameservers.html4
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_property_list.css17
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_property_list.html9
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_property_list.js32
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy.css14
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy.html36
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy.js19
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html3
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js2
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.css2
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.html1
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_siminfo.css19
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_siminfo.html13
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_siminfo.js20
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary.css7
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary.html3
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary.js184
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html13
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js26
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();
},