| Index: chrome/browser/resources/settings/internet_page/network_proxy.js
|
| diff --git a/chrome/browser/resources/settings/internet_page/network_proxy.js b/chrome/browser/resources/settings/internet_page/network_proxy.js
|
| index 1d9fd1131005fb59dc88c733dcc73ccde1d0556d..9f2ef04899b8224ad9648029733a935bf80b95b7 100644
|
| --- a/chrome/browser/resources/settings/internet_page/network_proxy.js
|
| +++ b/chrome/browser/resources/settings/internet_page/network_proxy.js
|
| @@ -19,7 +19,7 @@ Polymer({
|
| */
|
| networkProperties: {
|
| type: Object,
|
| - observer: 'networkPropertiesChanged_'
|
| + observer: 'networkPropertiesChanged_',
|
| },
|
|
|
| /**
|
| @@ -27,7 +27,7 @@ Polymer({
|
| */
|
| editable: {
|
| type: Boolean,
|
| - value: false
|
| + value: false,
|
| },
|
|
|
| /**
|
| @@ -36,7 +36,9 @@ Polymer({
|
| */
|
| proxy: {
|
| type: Object,
|
| - value: function() { return this.createDefaultProxySettings_(); }
|
| + value: function() {
|
| + return this.createDefaultProxySettings_();
|
| + },
|
| },
|
|
|
| /**
|
| @@ -44,7 +46,7 @@ Polymer({
|
| */
|
| WPAD: {
|
| type: String,
|
| - value: ''
|
| + value: '',
|
| },
|
|
|
| /**
|
| @@ -53,7 +55,7 @@ Polymer({
|
| useSameProxy: {
|
| type: Boolean,
|
| value: false,
|
| - observer: 'useSameProxyChanged_'
|
| + observer: 'useSameProxyChanged_',
|
| },
|
|
|
| /**
|
| @@ -67,7 +69,7 @@ Polymer({
|
| CrOnc.ProxySettingsType.DIRECT,
|
| CrOnc.ProxySettingsType.PAC,
|
| CrOnc.ProxySettingsType.WPAD,
|
| - CrOnc.ProxySettingsType.MANUAL
|
| + CrOnc.ProxySettingsType.MANUAL,
|
| ],
|
| readOnly: true
|
| },
|
| @@ -83,9 +85,9 @@ Polymer({
|
| DIRECT: CrOnc.ProxySettingsType.DIRECT,
|
| PAC: CrOnc.ProxySettingsType.PAC,
|
| MANUAL: CrOnc.ProxySettingsType.MANUAL,
|
| - WPAD: CrOnc.ProxySettingsType.WPAD
|
| + WPAD: CrOnc.ProxySettingsType.WPAD,
|
| },
|
| - readOnly: true
|
| + readOnly: true,
|
| },
|
| },
|
|
|
| @@ -115,33 +117,32 @@ Polymer({
|
| /** @type {!chrome.networkingPrivate.ManagedProxySettings|undefined} */
|
| var proxySettings = this.networkProperties.ProxySettings;
|
| if (proxySettings) {
|
| - proxy.Type = /** @type {!CrOnc.ProxySettingsType} */(
|
| + proxy.Type = /** @type {!CrOnc.ProxySettingsType} */ (
|
| CrOnc.getActiveValue(proxySettings.Type));
|
| if (proxySettings.Manual) {
|
| - proxy.Manual.HTTPProxy = /** @type {!CrOnc.ProxyLocation|undefined} */(
|
| + proxy.Manual.HTTPProxy = /** @type {!CrOnc.ProxyLocation|undefined} */ (
|
| CrOnc.getSimpleActiveProperties(proxySettings.Manual.HTTPProxy));
|
| proxy.Manual.SecureHTTPProxy =
|
| - /** @type {!CrOnc.ProxyLocation|undefined} */(
|
| + /** @type {!CrOnc.ProxyLocation|undefined} */ (
|
| CrOnc.getSimpleActiveProperties(
|
| proxySettings.Manual.SecureHTTPProxy));
|
| - proxy.Manual.FTPProxy = /** @type {!CrOnc.ProxyLocation|undefined} */(
|
| + proxy.Manual.FTPProxy = /** @type {!CrOnc.ProxyLocation|undefined} */ (
|
| CrOnc.getSimpleActiveProperties(proxySettings.Manual.FTPProxy));
|
| - proxy.Manual.SOCKS = /** @type {!CrOnc.ProxyLocation|undefined} */(
|
| + proxy.Manual.SOCKS = /** @type {!CrOnc.ProxyLocation|undefined} */ (
|
| CrOnc.getSimpleActiveProperties(proxySettings.Manual.SOCKS));
|
| }
|
| if (proxySettings.ExcludeDomains) {
|
| - proxy.ExcludeDomains = /** @type {!Array<string>|undefined} */(
|
| + proxy.ExcludeDomains = /** @type {!Array<string>|undefined} */ (
|
| CrOnc.getActiveValue(proxySettings.ExcludeDomains));
|
| }
|
| - proxy.PAC = /** @type {string|undefined} */(
|
| + proxy.PAC = /** @type {string|undefined} */ (
|
| CrOnc.getActiveValue(proxySettings.PAC));
|
| }
|
| // Use saved ExcludeDomanains and Manual if not defined.
|
| proxy.ExcludeDomains = proxy.ExcludeDomains || this.savedExcludeDomains_;
|
| proxy.Manual = proxy.Manual || this.savedManual_;
|
|
|
| - this.set('proxy', proxy);
|
| - this.$.selectType.value = proxy.Type;
|
| + this.proxy = proxy;
|
|
|
| // Set the Web Proxy Auto Discovery URL.
|
| var ipv4 =
|
| @@ -178,34 +179,43 @@ Polymer({
|
| */
|
| sendProxyChange_: function() {
|
| if (this.proxy.Type == CrOnc.ProxySettingsType.MANUAL) {
|
| - if (this.useSameProxy) {
|
| - var defaultProxy = this.proxy.Manual.HTTPProxy;
|
| - this.set('proxy.Manual.SecureHTTPProxy',
|
| - Object.assign({}, defaultProxy));
|
| - this.set('proxy.Manual.FTPProxy', Object.assign({}, defaultProxy));
|
| - this.set('proxy.Manual.SOCKS', Object.assign({}, defaultProxy));
|
| + var proxy =
|
| + /** @type {!CrOnc.ProxySettings} */ (Object.assign({}, this.proxy));
|
| + var defaultProxy = proxy.Manual.HTTPProxy;
|
| + if (!defaultProxy || !defaultProxy.Host)
|
| + return;
|
| + if (this.useSameProxy || !proxy.Manual.SecureHTTPProxy) {
|
| + proxy.Manual.SecureHTTPProxy = /** @type {!CrOnc.ProxyLocation} */ (
|
| + Object.assign({}, defaultProxy));
|
| + }
|
| + if (this.useSameProxy || !proxy.Manual.FTPProxy) {
|
| + proxy.Manual.FTPProxy = /** @type {!CrOnc.ProxyLocation} */ (
|
| + Object.assign({}, defaultProxy));
|
| }
|
| - this.savedManual_ = this.proxy.Manual;
|
| - this.savedExcludeDomains_ = this.proxy.ExcludeDomains;
|
| + if (this.useSameProxy || !proxy.Manual.SOCKS) {
|
| + proxy.Manual.SOCKS = /** @type {!CrOnc.ProxyLocation} */ (
|
| + Object.assign({}, defaultProxy));
|
| + }
|
| + this.savedManual_ = Object.assign({}, proxy.Manual);
|
| + this.savedExcludeDomains_ = proxy.ExcludeDomains;
|
| + this.proxy = proxy;
|
| + } else if (this.proxy.Type == CrOnc.ProxySettingsType.PAC) {
|
| + if (!this.proxy.PAC)
|
| + return;
|
| }
|
| - this.fire('proxy-change', {
|
| - field: 'ProxySettings',
|
| - value: this.proxy
|
| - });
|
| + this.fire('proxy-change', {field: 'ProxySettings', value: this.proxy});
|
| },
|
|
|
| /**
|
| * Event triggered when the selected proxy type changes.
|
| - * @param {Event} event The select node change event.
|
| + * @param {!{detail: !{selected: string}}} e
|
| * @private
|
| */
|
| - onTypeChange_: function(event) {
|
| - var type = this.proxyTypes_[event.target.selectedIndex];
|
| + onTypeChange_: function(e) {
|
| + var type = /** @type {chrome.networkingPrivate.ProxySettingsType} */ (
|
| + e.detail.selected);
|
| this.set('proxy.Type', type);
|
| - if (type != CrOnc.ProxySettingsType.MANUAL ||
|
| - this.savedManual_) {
|
| - this.sendProxyChange_();
|
| - }
|
| + this.sendProxyChange_();
|
| },
|
|
|
| /**
|
| @@ -267,7 +277,7 @@ Polymer({
|
| isPropertyEditable_: function(editable, networkProperties, key) {
|
| if (!editable)
|
| return false;
|
| - var property = /** @type {!CrOnc.ManagedProperty|undefined} */(
|
| + var property = /** @type {!CrOnc.ManagedProperty|undefined} */ (
|
| this.get(key, networkProperties));
|
| return !this.isNetworkPolicyEnforced(property);
|
| },
|
|
|