summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/resources/settings/internet_page
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-11-20 15:06:40 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-11-22 11:48:58 +0000
commitdaa093eea7c773db06799a13bd7e4e2e2a9f8f14 (patch)
tree96cc5e7b9194c1b29eab927730bfa419e7111c25 /chromium/chrome/browser/resources/settings/internet_page
parentbe59a35641616a4cf23c4a13fa0632624b021c1b (diff)
downloadqtwebengine-chromium-daa093eea7c773db06799a13bd7e4e2e2a9f8f14.tar.gz
BASELINE: Update Chromium to 63.0.3239.58
Change-Id: Ia93b322a00ba4dd4004f3bcf1254063ba90e1605 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/chrome/browser/resources/settings/internet_page')
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/compiled_resources2.gyp14
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_config.html78
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_config.js494
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html21
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js30
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_page.html6
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_page.js19
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_shared_css.html5
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js6
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_config_input.html20
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_config_input.js21
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_config_select.html24
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_config_select.js62
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html7
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.js14
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_siminfo.js18
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html10
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js16
18 files changed, 149 insertions, 716 deletions
diff --git a/chromium/chrome/browser/resources/settings/internet_page/compiled_resources2.gyp b/chromium/chrome/browser/resources/settings/internet_page/compiled_resources2.gyp
index 8cbb7f9805e..18f9191b2ff 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/compiled_resources2.gyp
+++ b/chromium/chrome/browser/resources/settings/internet_page/compiled_resources2.gyp
@@ -22,6 +22,7 @@
'target_name': 'internet_config',
'dependencies': [
'../compiled_resources2.gyp:route',
+ '<(DEPTH)/ui/webui/resources/cr_components/chromeos/network/compiled_resources2.gyp:network_config',
'<(DEPTH)/ui/webui/resources/cr_elements/chromeos/network/compiled_resources2.gyp:cr_onc_types',
'<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:assert',
'<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:i18n_behavior',
@@ -71,19 +72,6 @@
'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
},
{
- 'target_name': 'network_config_input',
- 'dependencies': [],
- 'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
- },
- {
- 'target_name': 'network_config_select',
- 'dependencies': [
- '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:assert',
- '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:i18n_behavior',
- ],
- 'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
- },
- {
'target_name': 'network_proxy_section',
'dependencies': [
'../compiled_resources2.gyp:route',
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_config.html b/chromium/chrome/browser/resources/settings/internet_page/internet_config.html
index 6c2a1f2fdd1..fd8d716df89 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_config.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_config.html
@@ -1,14 +1,12 @@
<link rel="import" href="chrome://resources/html/polymer.html">
+<link rel="import" href="chrome://resources/cr_components/chromeos/network/network_config.html">
<link rel="import" href="chrome://resources/cr_elements/chromeos/network/cr_network_icon.html">
<link rel="import" href="chrome://resources/cr_elements/chromeos/network/cr_onc_types.html">
<link rel="import" href="chrome://resources/html/i18n_behavior.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.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-toggle-button/paper-toggle-button.html">
<link rel="import" href="internet_shared_css.html">
-<link rel="import" href="network_config_input.html">
-<link rel="import" href="network_config_select.html">
<dom-module id="settings-internet-config">
<template>
@@ -20,7 +18,7 @@
<div class="start layout horizontal center">
<cr-network-icon network-state="[[networkProperties_]]" is-list-item>
</cr-network-icon>
- <div class="title">[[title_]]</div>
+ <div class="title">[[getTitle_(networkProperties_.*)]]</div>
</div>
<div id="buttonDiv">
<paper-button class="secondary-button" on-tap="onCancelTap_">
@@ -28,79 +26,27 @@
</paper-button>
<template is="dom-if" if="[[guid_]]">
<paper-button class="primary-button" on-tap="onSaveTap_"
- disabled="[[!saveIsEnabled_(configProperties_.*)]]">
+ disabled="[[!enableSave_]]">
$i18n{save}
</paper-button>
</template>
<template is="dom-if" if="[[!guid_]]">
<paper-button class="primary-button" on-tap="onConnectTap_"
- disabled="[[!connectIsEnabled_(configProperties_.*)]]">
+ disabled="[[!enableConnect_]]">
$i18n{networkButtonConnect}
</paper-button>
</template>
</div>
</div>
- <!-- WiFi -->
- <template is="dom-if"
- if="[[isType_(NetworkType_.WI_FI, networkProperties_.Type)]]">
- <div class="settings-box">
- <div id="shareLabel" class="start">$i18n{networkConfigShare}</div>
- <paper-toggle-button id="share" checked="{{shareNetwork_}}"
- disabled="[[!shareIsEnabled_(guid_, configProperties_.*)]]"
- aria-labelledby="shareLabel">
- </paper-toggle-button>
- </div>
- <network-config-input id="ssid" label="$i18n{OncWiFi-SSID}"
- value="{{configProperties_.WiFi.SSID}}" disabled="[[guid_]]">
- </network-config-input>
- <network-config-select id="security" label="$i18n{OncWiFi-Security}"
- value="{{configProperties_.WiFi.Security}}" disabled="[[guid_]]"
- items="[[securityItems_]]" onc-prefix="WiFi.Security">
- </network-config-select>
- <network-config-input label="$i18n{OncWiFi-Passphrase}"
- value="{{configProperties_.WiFi.Passphrase}}"
- hidden="[[!configRequiresPassphrase_(configProperties_.*)]]">
- </network-config-input>
- </template>
-
- <!-- EAP (WiFi, WiMAX, Ethernet) -->
- <template is="dom-if" if="[[showEap_]]">
- <network-config-select id="outer" label="$i18n{OncEAP-Outer}"
- value="{{eapProperties_.Outer}}" items="[[eapOuterItems_]]"
- onc-prefix="EAP.Outer" hidden="[[!showEap_.Outer]]">
- </network-config-select>
- <network-config-select id="inner" label="$i18n{OncEAP-Inner}"
- value="{{eapProperties_.Inner}}"
- items="[[getEapInnerItems_(eapProperties_.Outer)]]"
- onc-prefix="EAP.Inner" hidden="[[!showEap_.Inner]]">
- </network-config-select>
- <network-config-input label="$i18n{OncEAP-SubjectMatch}"
- value="{{eapProperties_.SubjectMatch}}"
- hidden="[[!showEap_.SubjectMatch]]">
- </network-config-input>
- <network-config-input label="$i18n{OncEAP-Identity}"
- value="{{eapProperties_.Identity}}">
- </network-config-input>
- <network-config-input label="$i18n{OncEAP-Password}"
- value="{{eapProperties_.Password}}" hidden="[[!showEap_.Password]]">
- </network-config-input>
- <network-config-input label="$i18n{OncEAP-AnonymousIdentity}"
- value="{{eapProperties_.AnonymousIdentity}}"
- hidden="[[!showEap_.AnonymousIdentity]]">
- </network-config-input>
- <div class="settings-box">
- <div id="saveCredentialsLabel" class="start">
- $i18n{networkConfigSaveCredentials}
- </div>
- <paper-toggle-button checked="{{eapProperties_.SaveCredentials}}"
- aria-labelledby="saveCredentialsLabel">
- </paper-toggle-button>
- </div>
- </template>
-
- <!-- TODO(stevenjb): Error message for config or cert failure -->
-
+ <div class="settings-box">
+ <network-config id="networkConfig" class="flex"
+ networking-private="[[networkingPrivate]]"
+ network-properties="{{networkProperties_}}"
+ enable-connect="{{enableConnect_}}" enable-save="{{enableSave_}}"
+ on-close="close_">
+ </network-config>
+ </div>
</template>
<script src="internet_config.js"></script>
</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_config.js b/chromium/chrome/browser/resources/settings/internet_page/internet_config.js
index 4760b53a5e0..a74aa471f2e 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_config.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_config.js
@@ -4,8 +4,7 @@
/**
* @fileoverview
- * 'settings-internet-config' provides configuration of authentication
- * properties for new and existing networks.
+ * 'settings-internet-config' is a Settings wrapper for network-config.
*/
Polymer({
is: 'settings-internet-config',
@@ -26,167 +25,21 @@ Polymer({
*/
guid_: String,
- /**
- * The current properties if an existing network being configured.
- * This will be undefined when configuring a new network.
- * @private {!chrome.networkingPrivate.NetworkProperties|undefined}
- */
- networkProperties_: Object,
-
- /** Set if |guid_| is not empty once networkProperties_ are received. */
- propertiesReceived_: Boolean,
-
- /** Set once properties have been sent; prevents multiple saves. */
- propertiesSent_: Boolean,
-
- /**
- * The configuration properties for the network. |configProperties_.Type|
- * will always be defined as the network type being configured.
- * @private {!chrome.networkingPrivate.NetworkConfigProperties}
- */
- configProperties_: Object,
-
- /**
- * Reference to the EAP properties for the current type or null if all EAP
- * properties should be hidden (e.g. WiFi networks with non EAP Security).
- * Note: even though this references an entry in configProperties_, we
- * need to send a separate notification when it changes for data binding
- * (e.g. by using 'set').
- * @private {?chrome.networkingPrivate.EAPProperties}
- */
- eapProperties_: {
- type: Object,
- value: null,
- },
-
- /**
- * The title to display (network name or type).
- * @private
- */
- title_: {
- type: String,
- computed: 'computeTitle_(networkProperties_)',
- },
-
- /**
- * Whether this network should be shared with other users of the device.
- * @private
- */
- shareNetwork_: {
- type: Boolean,
- value: true,
- },
+ /** @private */
+ enableConnect_: String,
- /**
- * Saved security value, used to detect when Security changes.
- * @private
- */
- savedSecurity_: String,
+ /** @private */
+ enableSave_: String,
/**
- * Dictionary of boolean values determining which EAP properties to show,
- * or null to hide all EAP settings.
- * @type {?{
- * Outer: boolean,
- * Inner: boolean,
- * ServerCA: boolean,
- * SubjectMatch: boolean,
- * UserCert: boolean,
- * Password: boolean,
- * AnonymousIdentity: boolean,
- * }}
- * @private
+ * The current properties if an existing network is being configured, or
+ * a minimal subset for a new network. Note: network-config may modify
+ * this (specifically .name).
+ * @private {!chrome.networkingPrivate.NetworkProperties}
*/
- showEap_: {
- type: Object,
- value: null,
- },
-
- /**
- * Object providing network type values for data binding. Note: Currently
- * we only support WiFi, but support for other types will be following
- * shortly.
- * @const
- * @private
- */
- NetworkType_: {
- type: Object,
- value: {
- ETHERNET: CrOnc.Type.ETHERNET,
- VPN: CrOnc.Type.VPN,
- WI_FI: CrOnc.Type.WI_FI,
- WI_MAX: CrOnc.Type.WI_MAX,
- },
- readOnly: true
- },
-
- /**
- * Array of values for the WiFi Security dropdown.
- * @type {!Array<string>}
- * @const
- * @private
- */
- securityItems_: {
- type: Array,
- readOnly: true,
- value: [
- CrOnc.Security.NONE, CrOnc.Security.WEP_PSK, CrOnc.Security.WPA_PSK,
- CrOnc.Security.WPA_EAP
- ],
- },
-
- /**
- * Array of values for the EAP Method (Outer) dropdown.
- * @type {!Array<string>}
- * @const
- * @private
- */
- eapOuterItems_: {
- type: Array,
- readOnly: true,
- value: [
- CrOnc.EAPType.LEAP, CrOnc.EAPType.PEAP, CrOnc.EAPType.EAP_TLS,
- CrOnc.EAPType.EAP_TTLS
- ],
- },
-
- /**
- * Array of values for the EAP EAP Phase 2 authentication (Inner) dropdown
- * when the Outer type is PEAP.
- * @type {!Array<string>}
- * @const
- * @private
- */
- eapInnerItemsPeap_: {
- type: Array,
- readOnly: true,
- value: ['Automatic', 'MD5', 'MSCHAPv2'],
- },
-
- /**
- * Array of values for the EAP EAP Phase 2 authentication (Inner) dropdown
- * when the Outer type is EAP-TTLS.
- * @type {!Array<string>}
- * @const
- * @private
- */
- eapInnerItemsTtls_: {
- type: Array,
- readOnly: true,
- value: ['Automatic', 'MD5', 'MSCHAP', 'MSCHAPv2', 'PAP', 'CHAP', 'GTC'],
- },
+ networkProperties_: Object,
},
- observers: [
- 'updateConfigProperties_(networkProperties_)',
- 'updateWiFiSecurity_(configProperties_.WiFi.Security)',
- 'updateEapOuter_(eapProperties_.Outer)',
- 'updateShowEap_(eapProperties_.*)',
- ],
-
- /** @const */
- MIN_PASSPHRASE_LENGTH: 5,
-
/**
* settings.RouteObserverBehavior
* @param {!settings.Route} route
@@ -196,10 +49,6 @@ Polymer({
if (route != settings.routes.NETWORK_CONFIG)
return;
- this.propertiesSent_ = false;
- this.savedSecurity_ = '';
- this.showEap_ = null;
-
var queryParams = settings.getQueryParameters();
this.guid_ = queryParams.get('guid') || '';
@@ -207,17 +56,24 @@ Polymer({
// configurations until the current properties are loaded.
var name = queryParams.get('name') || '';
var typeParam = queryParams.get('type');
- var type = typeParam ? CrOnc.getValidType(typeParam) : CrOnc.Type.WI_FI;
+ var type = (typeParam && CrOnc.getValidType(typeParam)) || CrOnc.Type.WI_FI;
assert(type && type != CrOnc.Type.ALL);
this.networkProperties_ = {
GUID: this.guid_,
Name: name,
Type: type,
};
- if (this.guid_) {
- this.networkingPrivate.getProperties(
- this.guid_, this.getPropertiesCallback_.bind(this));
- }
+
+ // First focus this page (which will focus a button), then init the config
+ // element which will focus an enabled element if any.
+ this.focus();
+ this.$.networkConfig.init();
+ },
+
+ focus() {
+ var e = this.$$('paper-button:not([disabled])');
+ assert(e); // The 'cancel' button should never be disabled.
+ e.focus();
},
/** @private */
@@ -227,322 +83,26 @@ Polymer({
},
/**
- * networkingPrivate.getProperties callback.
- * @param {!chrome.networkingPrivate.NetworkProperties} properties
- * @private
- */
- getPropertiesCallback_: function(properties) {
- if (!properties) {
- // If |properties| is null, the network no longer exists; close the page.
- console.error('Network no longer exists: ' + this.guid_);
- this.close_();
- return;
- }
- this.propertiesReceived_ = true;
- this.networkProperties_ = properties;
-
- // Set the current shareNetwork_ value when porperties are received.
- var source = this.networkProperties_.Source;
- this.shareNetwork_ =
- source == CrOnc.Source.DEVICE || source == CrOnc.Source.DEVICE_POLICY;
- },
-
- /**
* @return {string}
* @private
*/
- computeTitle_: function() {
+ getTitle_: function() {
return this.networkProperties_.Name ||
this.i18n('OncType' + this.networkProperties_.Type);
},
- /**
- * Updates the config properties when |this.networkProperties_| changes.
- * This gets called once when navigating to the page when default properties
- * are set, and again for existing networks when the properties are received.
- * @private
- */
- updateConfigProperties_: function() {
- var properties = this.networkProperties_;
- var configProperties =
- /** @type {chrome.networkingPrivate.NetworkConfigProperties} */ ({
- Name: properties.Name || '',
- Type: properties.Type,
- });
- if (properties.Type == CrOnc.Type.WI_FI) {
- if (properties.WiFi) {
- configProperties.WiFi = {
- AutoConnect: properties.WiFi.AutoConnect,
- EAP: Object.assign({}, properties.WiFi.EAP),
- Passphrase: properties.WiFi.Passphrase,
- SSID: properties.WiFi.SSID,
- Security: properties.WiFi.Security
- };
- } else {
- configProperties.WiFi = {
- AutoConnect: false,
- SSID: '',
- Security: CrOnc.Security.NONE,
- };
- }
- // updateWiFiSecurity_ will ensure that EAP properties are set correctly.
- } else if (properties.Type == CrOnc.Type.ETHERNET) {
- if (properties.Ethernet) {
- configProperties.Ethernet = {
- AutoConnect: properties.Ethernet.AutoConnect,
- EAP: Object.assign({}, properties.Ethernet.EAP),
- };
- configProperties.Ethernet.EAP.Outer =
- configProperties.Ethernet.EAP.Outer || CrOnc.EAPType.LEAP;
- } else {
- configProperties.Ethernet = {
- AutoConnect: false,
- };
- }
- } else if (properties.Type == CrOnc.Type.WI_MAX) {
- if (properties.WiMAX) {
- configProperties.WiMAX = {
- AutoConnect: properties.WiMAX.AutoConnect,
- EAP: Object.assign({}, properties.WiMAX.EAP),
- };
- // WiMAX has no EAP.Outer property, only Identity and Password.
- } else {
- configProperties.WiMAX = {
- AutoConnect: false,
- };
- }
- }
- this.configProperties_ = configProperties;
- this.set('eapProperties_', this.getEap_(this.configProperties_));
- if (!this.eapProperties_)
- this.showEap_ = null;
- },
-
- /**
- * Ensures that the appropriate properties are set or deleted when the
- * Security type changes.
- * @private
- */
- updateWiFiSecurity_: function() {
- if (!this.configProperties_.WiFi)
- return; // May get called when clearing the property.
- var security = this.configProperties_.WiFi.Security || CrOnc.Security.NONE;
- if (security == this.savedSecurity_)
- return;
- this.savedSecurity_ = security;
-
- if (!this.guid_) {
- // Set the default share state for new configurations.
- // TODO(stevenjb): also check login state.
- this.shareNetwork_ = security == CrOnc.Security.NONE;
- }
-
- if (security == CrOnc.Security.WPA_EAP) {
- var eap = this.configProperties_.WiFi.EAP || {};
- eap.Outer = eap.Outer || CrOnc.EAPType.LEAP;
- this.configProperties_.WiFi.EAP = eap;
- this.set('eapProperties_', this.configProperties_.WiFi.EAP);
- } else {
- delete this.configProperties_.WiFi.EAP;
- this.eapProperties_ = null;
- }
- },
-
- /**
- * Ensures that the appropriate EAP properties are created (or deleted when
- * the EAP.Outer property changes.
- * @private
- */
- updateEapOuter_: function() {
- var eap = this.eapProperties_;
- if (!eap || !eap.Outer)
- return;
- var innerItems = this.getEapInnerItems_(eap.Outer);
- if (innerItems.length > 0) {
- if (!eap.Inner || innerItems.indexOf(eap.Inner) < 0)
- this.set('eapProperties_.Inner', innerItems[0]);
- } else {
- this.set('eapProperties_.Inner', undefined);
- }
- },
-
/** @private */
- updateShowEap_: function() {
- if (!this.eapProperties_) {
- this.showEap_ = null;
- return;
- }
- var type = this.configProperties_.Type;
- var outer = this.eapProperties_.Outer;
- this.showEap_ = {
- Outer: type != CrOnc.Type.WI_MAX,
- Inner: outer == CrOnc.EAPType.PEAP || outer == CrOnc.EAPType.EAP_TTLS,
- ServerCA: type != CrOnc.Type.WI_MAX && outer != CrOnc.EAPType.LEAP,
- SubjectMatch: outer == CrOnc.EAPType.EAP_TLS,
- UserCert: outer == CrOnc.EAPType.EAP_TLS,
- Password: outer != CrOnc.EAPType.EAP_TLS,
- AnonymousIdentity:
- outer == CrOnc.EAPType.PEAP || outer == CrOnc.EAPType.EAP_TTLS,
- };
- },
-
- /**
- * @param {!chrome.networkingPrivate.NetworkConfigProperties} properties
- * @return {?chrome.networkingPrivate.EAPProperties}
- * @private
- */
- getEap_: function(properties) {
- if (properties.WiFi)
- return properties.WiFi.EAP || null;
- if (properties.Ethernet)
- return properties.Ethernet.EAP || null;
- if (properties.WiMAX)
- return properties.WiMAX.EAP || null;
- return null;
- },
-
- /**
- * @param {CrOnc.Type} type The type to compare against.
- * @param {CrOnc.Type} networkType The current network type.
- * @return {boolean} True if the network type matches 'type'.
- * @private
- */
- isType_: function(type, networkType) {
- return type == networkType;
- },
-
- /**
- * @return {boolean}
- * @private
- */
- saveIsEnabled_: function() {
- return this.propertiesReceived_ && !this.propertiesSent_;
- },
-
- /**
- * @return {boolean}
- * @private
- */
- connectIsEnabled_: function() {
- if (this.propertiesSent_)
- return false;
- if (this.configProperties_.Type == CrOnc.Type.WI_FI) {
- if (!this.get('WiFi.SSID', this.configProperties_))
- return false;
- if (this.configRequiresPassphrase_()) {
- var passphrase = this.get('WiFi.Passphrase', this.configProperties_);
- if (!passphrase || passphrase.length < this.MIN_PASSPHRASE_LENGTH)
- return false;
- }
- }
- // TODO(stevenjb): Check certificates.
- return true;
- },
-
- /**
- * @return {boolean}
- * @private
- */
- shareIsEnabled_: function() {
- if (this.networkProperties_.Source == CrOnc.Source.DEVICE ||
- this.networkProperties_.Source == CrOnc.Source.DEVICE_POLICY) {
- return false;
- }
- // TODO(stevenjb): Check login state.
-
- if (this.configProperties_.Type == CrOnc.Type.WI_FI) {
- var security = this.get('WiFi.Security', this.configProperties_);
- if (!security || security == CrOnc.Security.NONE) {
- return false;
- } else if (security == CrOnc.Security.WPA_EAP) {
- var outer = this.get('WiFi.EAP.Outer', this.configProperties_);
- if (outer == CrOnc.EAPType.EAP_TLS)
- return false;
- }
- // TODO(stevenjb): Check certificates.
- }
- return true;
+ onCancelTap_: function() {
+ this.close_();
},
/** @private */
onSaveTap_: function() {
- assert(this.guid_);
- if (this.propertiesSent_)
- return;
- this.propertiesSent_ = true;
- var propertiesToSet = Object.assign({}, this.configProperties_);
- propertiesToSet.GUID = this.guid_;
- this.networkingPrivate.setProperties(
- this.guid_, propertiesToSet, this.setPropertiesCallback_.bind(this));
- },
-
- /** @private */
- setPropertiesCallback_: function() {
- var error = chrome.runtime.lastError && chrome.runtime.lastError.message;
- if (error) {
- console.error(
- 'Error setting network properties: ' + this.guid_ + ': ' + error);
- }
- this.close_();
+ this.$.networkConfig.saveOrConnect();
},
/** @private */
onConnectTap_: function() {
- assert(!this.guid_);
- if (this.propertiesSent_)
- return;
- this.propertiesSent_ = true;
- // Create the configuration, then connect to it in the callback.
- this.networkingPrivate.createNetwork(
- this.shareNetwork_, this.configProperties_,
- this.createNetworkCallback_.bind(this));
- },
-
- /**
- * @param {string} guid
- * @private
- */
- createNetworkCallback_: function(guid) {
- var error = chrome.runtime.lastError && chrome.runtime.lastError.message;
- if (error) {
- // TODO(stevenjb): Display error message.
- console.error(
- 'Error creating network type: ' + this.networkProperties_.Type +
- ': ' + error);
- return;
- }
- this.networkProperties_.GUID = guid;
- this.fire('network-connect', {networkProperties: this.networkProperties_});
- this.close_();
- },
-
- /** @private */
- onCancelTap_: function() {
- this.close_();
- },
-
- /**
- * @return boolean
- * @private
- */
- configRequiresPassphrase_: function() {
- if (this.configProperties_.Type != CrOnc.Type.WI_FI)
- return false;
- var security = this.get('WiFi.Security', this.configProperties_);
- return security == CrOnc.Security.WEP_PSK ||
- security == CrOnc.Security.WPA_PSK;
- },
-
- /**
- * @param {string} outer
- * @return {!Array<string>}
- * @private
- */
- getEapInnerItems_: function(outer) {
- if (outer == CrOnc.EAPType.PEAP)
- return this.eapInnerItemsPeap_;
- if (outer == CrOnc.EAPType.EAP_TTLS)
- return this.eapInnerItemsTtls_;
- return [];
+ this.$.networkConfig.saveOrConnect();
},
});
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 1caee855099..ac1652041e5 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,6 +1,7 @@
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/cr_components/chromeos/network/network_apnlist.html">
+<link rel="import" href="chrome://resources/cr_components/chromeos/network/network_choose_mobile.html">
<link rel="import" href="chrome://resources/cr_components/chromeos/network/network_ip_config.html">
<link rel="import" href="chrome://resources/cr_components/chromeos/network/network_nameservers.html">
<link rel="import" href="chrome://resources/cr_components/chromeos/network/network_property_list.html">
@@ -160,22 +161,22 @@
<!-- Choose Mobile Network (Cellular only). -->
<template is="dom-if"
if="[[showCellularChooseNetwork_(networkProperties)]]">
- <div class="settings-box">
- <div class="start">$i18n{networkChooseMobileDetail}</div>
- <paper-button on-tap="onChooseMobileTap_">
- $i18n{networkChooseMobileButton}
- </paper-button>
+ <div class="settings-box single-column stretch">
+ <network-choose-mobile networking-private="[[networkingPrivate]]"
+ network-properties="[[networkProperties]]">
+ </network-choose-mobile>
</div>
</template>
<!-- Data roaming (Cellular only). -->
<template is="dom-if" if="[[isCellular_(networkProperties)]]">
- <settings-toggle-button id="allowDataRoaming"
- pref="{{prefs.cros.signed.data_roaming_enabled}}"
- label="$i18n{networkAllowDataRoaming}">
- </settings-toggle-button>
+ <settings-toggle-button id="allowDataRoaming"
+ pref="{{prefs.cros.signed.data_roaming_enabled}}"
+ label="$i18n{networkAllowDataRoaming}">
+ </settings-toggle-button>
</template>
<!-- SIM Info (Cellular only). -->
- <template is="dom-if" if="[[showCellularSim_(networkProperties)]]">
+ <template is="dom-if" if="[[showCellularSim_(networkProperties)]]"
+ restamp>
<div class="settings-box single-column stretch">
<network-siminfo
editable on-siminfo-change="onNetworkPropertyChange_"
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 598a2369ff2..03ebf640485 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
@@ -229,11 +229,10 @@ Polymer({
if (!this.didSetFocus_) {
// Focus a button once the initial state is set.
this.didSetFocus_ = true;
- var button = this.$$('#titleDiv .primary-button:not([hidden])');
- if (!button)
- button = this.$$('#titleDiv paper-button:not([hidden])');
- assert(button); // At least one button will always be visible.
- button.focus();
+ var button = this.$$('#titleDiv .primary-button:not([hidden])') ||
+ this.$$('#titleDiv paper-button:not([hidden])');
+ if (button)
+ button.focus();
}
if (this.shouldShowConfigureWhenNetworkLoaded_ &&
@@ -371,6 +370,8 @@ Polymer({
* @private
*/
getStateText_: function(networkProperties) {
+ if (!networkProperties.ConnectionState)
+ return '';
return this.i18n('Onc' + networkProperties.ConnectionState);
},
@@ -486,14 +487,14 @@ Polymer({
if (this.connectNotAllowed_(networkProperties, globalPolicy))
return false;
var type = networkProperties.Type;
- if (type == CrOnc.Type.CELLULAR)
+ if (type == CrOnc.Type.CELLULAR || type == CrOnc.Type.TETHER)
return false;
if ((type == CrOnc.Type.WI_FI || type == CrOnc.Type.WI_MAX) &&
networkProperties.ConnectionState !=
CrOnc.ConnectionState.NOT_CONNECTED) {
return false;
}
- return this.isRemembered_(networkProperties);
+ return true;
},
/**
@@ -540,8 +541,9 @@ Polymer({
enableConnect_: function(networkProperties, defaultNetwork, globalPolicy) {
if (!this.showConnect_(networkProperties, globalPolicy))
return false;
- if (networkProperties.Type == CrOnc.Type.CELLULAR &&
- CrOnc.isSimLocked(networkProperties)) {
+ if ((networkProperties.Type == CrOnc.Type.CELLULAR) &&
+ (CrOnc.isSimLocked(networkProperties) ||
+ this.get('Cellular.Scanning', networkProperties))) {
return false;
}
if (networkProperties.Type == CrOnc.Type.VPN && !defaultNetwork)
@@ -607,12 +609,6 @@ Polymer({
this.networkingPrivate.startActivate(this.guid);
},
- /** @private */
- onChooseMobileTap_: function() {
- // TODO(stevenjb): Integrate ChooseMobileNetworkDialog with WebUI.
- chrome.send('addNetwork', [this.networkProperties.Type]);
- },
-
/** @const {string} */
CR_EXPAND_BUTTON_TAG: 'CR-EXPAND-BUTTON',
@@ -1018,8 +1014,8 @@ Polymer({
*/
showCellularSim_: function(networkProperties) {
return networkProperties.Type == CrOnc.Type.CELLULAR &&
- this.get('Cellular.Family', this.networkProperties) ==
- CrOnc.NetworkTechnology.GSM;
+ !!networkProperties.Cellular &&
+ networkProperties.Cellular.Family != 'CDMA';
},
/**
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 a213bc61188..f77ea978261 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_page.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_page.html
@@ -51,14 +51,16 @@
if="[[deviceIsEnabled_(deviceStates.WiFi)]]">
<div actionable class="list-item" on-tap="onAddWiFiTap_">
<div class="start">$i18n{internetAddWiFi}</div>
- <button class="icon-external" is="paper-icon-button-light"
+ <button class$="[[getAddNetworkClass_('WiFi')]]"
+ is="paper-icon-button-light"
aria-label="$i18n{internetAddWiFi}">
</button>
</div>
</template>
<div actionable class="list-item" on-tap="onAddVPNTap_">
<div class="start">$i18n{internetAddVPN}</div>
- <button class="icon-external" is="paper-icon-button-light"
+ <button class$="[[getAddNetworkClass_('VPN')]]"
+ is="paper-icon-button-light"
aria-label="$i18n{internetAddVPN}">
</button>
</div>
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 50000efea86..85c7a78c1c8 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_page.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_page.js
@@ -277,6 +277,20 @@ Polymer({
},
/**
+ * @param {string} type
+ * @return {string}
+ * @private
+ */
+ getAddNetworkClass_: function(type) {
+ if (loadTimeData.getBoolean('networkSettingsConfig')) {
+ if (type == CrOnc.Type.WI_FI)
+ return 'icon-add-wifi';
+ return 'icon-add-circle';
+ }
+ return 'icon-external';
+ },
+
+ /**
* @param {string} subpageType
* @param {!Object<!CrOnc.DeviceStateProperties>|undefined} deviceStates
* @return {!CrOnc.DeviceStateProperties|undefined}
@@ -325,7 +339,10 @@ Polymer({
/** @private */
onAddVPNTap_: function() {
- chrome.send('addNetwork', [CrOnc.Type.VPN]);
+ if (loadTimeData.getBoolean('networkSettingsConfig'))
+ this.showConfig_(CrOnc.Type.VPN);
+ else
+ chrome.send('addNetwork', [CrOnc.Type.VPN]);
},
/**
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_shared_css.html b/chromium/chrome/browser/resources/settings/internet_page/internet_shared_css.html
index 8a9fbd27179..1d60703ee2c 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_shared_css.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_shared_css.html
@@ -4,6 +4,10 @@
<dom-module id="internet-shared">
<template>
<style include="settings-shared">
+ :root {
+ --network-control-width: 250px;
+ }
+
cr-network-icon {
-webkit-padding-end: var(--settings-box-row-padding);
}
@@ -20,6 +24,7 @@
};
margin-bottom: 0;
margin-top: -9px;
+ width: var(--network-control-width);
}
.indented {
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js b/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js
index 92870ea7316..0434b0e14c0 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js
@@ -354,10 +354,12 @@ Polymer({
/** @private */
onAddButtonTap_: function() {
assert(this.deviceState);
+ var type = this.deviceState.Type;
+ assert(type != CrOnc.Type.CELLULAR);
if (loadTimeData.getBoolean('networkSettingsConfig'))
- this.fire('show-config', {GUID: '', Type: this.deviceState.Type});
+ this.fire('show-config', {GUID: '', Type: type});
else
- chrome.send('addNetwork', [this.deviceState.Type]);
+ chrome.send('addNetwork', [type]);
},
/**
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_config_input.html b/chromium/chrome/browser/resources/settings/internet_page/network_config_input.html
deleted file mode 100644
index 8ce5b88c82d..00000000000
--- a/chromium/chrome/browser/resources/settings/internet_page/network_config_input.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-input/iron-input.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input-container.html">
-<link rel="import" href="../settings_shared_css.html">
-
-<dom-module id="network-config-input">
- <template>
- <style include="settings-shared">
- </style>
-
- <div class="settings-box">
- <div id="label" class="start">[[label]]</div>
- <paper-input-container no-label-float>
- <input is="iron-input" value="{{value::change}}"
- disabled="[[disabled]]" aria-labelledby="label">
- </paper-input-container>
- </div>
- </template>
- <script src="network_config_input.js"></script>
-</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_config_input.js b/chromium/chrome/browser/resources/settings/internet_page/network_config_input.js
deleted file mode 100644
index 0d9aa62a1ff..00000000000
--- a/chromium/chrome/browser/resources/settings/internet_page/network_config_input.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2017 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.
-
-/**
- * @fileoverview Polymer element for network configuration input fields.
- */
-Polymer({
- is: 'network-config-input',
-
- properties: {
- label: String,
-
- disabled: Boolean,
-
- value: {
- type: String,
- notify: true,
- }
- },
-});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_config_select.html b/chromium/chrome/browser/resources/settings/internet_page/network_config_select.html
deleted file mode 100644
index f71400cff19..00000000000
--- a/chromium/chrome/browser/resources/settings/internet_page/network_config_select.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
-<link rel="import" href="chrome://resources/html/md_select_css.html">
-<link rel="import" href="../settings_shared_css.html">
-
-<dom-module id="network-config-select">
- <template>
- <style include="settings-shared md-select">
- </style>
-
- <div class="settings-box">
- <div id="label" class="start">[[label]]</div>
- <select class="md-select" disabled="[[disabled]]"
- value="{{value::change}}" aria-labelledby="label">
- <template is="dom-repeat" items="[[items]]">
- <option value="[[item]]">
- [[getOncLabel_(item, oncPrefix)]]
- </option>
- </template>
- </select>
- </div>
-
- </template>
- <script src="network_config_select.js"></script>
-</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_config_select.js b/chromium/chrome/browser/resources/settings/internet_page/network_config_select.js
deleted file mode 100644
index 23794bb400f..00000000000
--- a/chromium/chrome/browser/resources/settings/internet_page/network_config_select.js
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2017 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.
-
-/**
- * @fileoverview Polymer element for network configuration selection menus.
- */
-Polymer({
- is: 'network-config-select',
-
- behaviors: [I18nBehavior],
-
- properties: {
- label: String,
-
- disabled: Boolean,
-
- /**
- * Array of item values to select from.
- * @type {!Array<string>}
- */
- items: Array,
-
- /** Prefix used to look up ONC property names. */
- oncPrefix: String,
-
- /** Select item value */
- value: {
- type: String,
- notify: true,
- },
- },
-
- observers: ['updateSelected_(items, value)'],
-
- /**
- * Ensure that the <select> value is updated when |items| or |value| changes.
- * @private
- */
- updateSelected_: function() {
- // Wait for the dom-repeat to populate the <option> entries.
- this.async(function() {
- var select = this.$$('select');
- if (select.value != this.value)
- select.value = this.value;
- });
- },
-
- /**
- * @param {string} key
- * @param {string} prefix
- * @return {string} The text to display for the onc value.
- * @private
- */
- getOncLabel_: function(key, prefix) {
- var oncKey = 'Onc' + prefix.replace(/\./g, '-') + '_' + key;
- if (this.i18nExists(oncKey))
- return this.i18n(oncKey);
- assertNotReached();
- return key;
- },
-});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html
index f4cddf4cd3d..f5d88e89c41 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html
@@ -9,7 +9,6 @@
<link rel="import" href="chrome://resources/html/assert.html">
<link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html">
<link rel="import" href="chrome://resources/html/i18n_behavior.html">
-<link rel="import" href="chrome://resources/html/md_select_css.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
<link rel="import" href="../controls/extension_controlled_indicator.html">
@@ -21,7 +20,7 @@
<dom-module id="network-proxy-section">
<template>
- <style include="internet-shared md-select cr-hidden-style iron-flex iron-flex-alignment">
+ <style include="internet-shared cr-hidden-style iron-flex iron-flex-alignment">
cr-policy-network-indicator {
-webkit-margin-end: 10px;
}
@@ -82,7 +81,9 @@
close-text="$i18n{close}" on-cancel="onAllowSharedDialogCancel_"
on-close="onAllowSharedDialogClose_">
<div slot="title">
- $i18n{networkProxyAllowSharedWarningTitle}
+ [[getAllowSharedDialogTitle_(prefs.settings.use_shared_proxies.value,
+ '$i18n{networkProxyAllowSharedEnableWarningTitle}',
+ '$i18n{networkProxyAllowSharedDisableWarningTitle}')]]
</div>
<div slot="body">
$i18n{networkProxyAllowSharedWarningMessage}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.js b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.js
index 4a637c97d29..ce303c1a8b1 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.js
@@ -67,6 +67,17 @@ Polymer({
},
/**
+ * @param {boolean} allowShared
+ * @param {string} enableStr
+ * @param {string} disableStr
+ * @return {string}
+ * @private
+ */
+ getAllowSharedDialogTitle_: function(allowShared, enableStr, disableStr) {
+ return allowShared ? disableStr : enableStr;
+ },
+
+ /**
* @return {boolean}
* @private
*/
@@ -91,7 +102,8 @@ Polymer({
* @private
*/
shouldShowAllowShared_: function(property) {
- return !this.isControlled(property) && this.isShared_();
+ return this.isShared_() && !this.isNetworkPolicyEnforced(property) &&
+ !this.isExtensionControlled(property);
},
/**
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 cb0eb9cbd05..2ea134f2069 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_siminfo.js
@@ -71,6 +71,18 @@ Polymer({
sendSimLockEnabled_: false,
+ /** @override */
+ detached: function() {
+ if (this.$.enterPinDialog.open)
+ this.$.enterPinDialog.close();
+ if (this.$.changePinDialog.open)
+ this.$.changePinDialog.close();
+ if (this.$.unlockPinDialog.open)
+ this.$.unlockPinDialog.close();
+ if (this.$.unlockPukDialog.open)
+ this.$.unlockPukDialog.close();
+ },
+
/** @private */
networkPropertiesChanged_: function() {
if (!this.networkProperties || !this.networkProperties.Cellular)
@@ -135,6 +147,7 @@ Polymer({
* @private
*/
sendEnterPin_: function(event) {
+ event.stopPropagation();
var guid = (this.networkProperties && this.networkProperties.GUID) || '';
var pin = this.$.enterPin.value;
if (!this.validatePin_(pin)) {
@@ -162,9 +175,9 @@ Polymer({
* @private
*/
onChangePinTap_: function(event) {
+ event.stopPropagation();
if (!this.networkProperties || !this.networkProperties.Cellular)
return;
- event.stopPropagation();
this.error_ = ErrorType.NONE;
this.$.changePinOld.value = '';
this.$.changePinNew1.value = '';
@@ -178,6 +191,7 @@ Polymer({
* @private
*/
sendChangePin_: function(event) {
+ event.stopPropagation();
var guid = (this.networkProperties && this.networkProperties.GUID) || '';
var newPin = this.$.changePinNew1.value;
if (!this.validatePin_(newPin, this.$.changePinNew2.value))
@@ -219,6 +233,7 @@ Polymer({
* @private
*/
sendUnlockPin_: function(event) {
+ event.stopPropagation();
var guid = (this.networkProperties && this.networkProperties.GUID) || '';
var pin = this.$.unlockPin.value;
if (!this.validatePin_(pin))
@@ -257,6 +272,7 @@ Polymer({
* @private
*/
sendUnlockPuk_: function(event) {
+ event.stopPropagation();
var guid = (this.networkProperties && this.networkProperties.GUID) || '';
var puk = this.$.unlockPuk.value;
if (!this.validatePuk_(puk))
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 6a9295eea59..b1a730a7e82 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
@@ -36,7 +36,8 @@
</style>
<div actionable class="settings-box two-line" on-tap="onShowDetailsTap_">
<div id="details" no-flex$="[[showSimInfo_(deviceState)]]">
- <cr-network-icon network-state="[[activeNetworkState]]">
+ <cr-network-icon network-state="[[activeNetworkState]]"
+ device-state="[[deviceState]]">
</cr-network-icon>
<div class="flex">
<div id="networkName">[[getNetworkName_(activeNetworkState)]]</div>
@@ -46,8 +47,8 @@
</div>
</div>
- <template is="dom-if" if="[[showSimInfo_(deviceState)]]">
- <network-siminfo editable
+ <template is="dom-if" if="[[showSimInfo_(deviceState)]]" restamp>
+ <network-siminfo editable on-tap="doNothing_"
network-properties="[[getCellularState_(deviceState)]]"
networking-private="[[networkingPrivate]]">
</network-siminfo>
@@ -55,7 +56,8 @@
<template is="dom-if" if="[[showPolicyIndicator_(activeNetworkState)]]">
<cr-policy-indicator indicator-type="[[getIndicatorTypeForSource(
- activeNetworkState.Source)]]">
+ activeNetworkState.Source)]]"
+ on-tap="doNothing_">
</cr-policy-indicator>
</template>
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 656d66606cd..9555d961bd8 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
@@ -85,8 +85,11 @@ Polymer({
return this.i18n('tetherEnableBluetooth');
}
// Enabled or enabling states.
- if (deviceState.State == CrOnc.DeviceState.ENABLED)
- return CrOncStrings.networkListItemNotConnected;
+ if (deviceState.State == CrOnc.DeviceState.ENABLED) {
+ if (this.networkStateList.length > 0)
+ return CrOncStrings.networkListItemNotConnected;
+ return CrOncStrings.networkListItemNoNetwork;
+ }
if (deviceState.State == CrOnc.DeviceState.ENABLING)
return this.i18n('internetDeviceEnabling');
}
@@ -306,4 +309,13 @@ Polymer({
// Make sure this does not propagate to onDetailsTap_.
event.stopPropagation();
},
+
+ /**
+ * Make sure events in embedded components do not propagate to onDetailsTap_.
+ * @param {!Event} event
+ * @private
+ */
+ doNothing_: function(event) {
+ event.stopPropagation();
+ },
});