| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @fileoverview Polymer element for displaying and editing network proxy | 6 * @fileoverview Polymer element for displaying and editing network proxy |
| 7 * values. | 7 * values. |
| 8 */ | 8 */ |
| 9 Polymer({ | 9 Polymer({ |
| 10 is: 'network-proxy', | 10 is: 'network-proxy', |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 CrOnc.getActiveValue(proxySettings.Type)); | 167 CrOnc.getActiveValue(proxySettings.Type)); |
| 168 if (proxySettings.Manual) { | 168 if (proxySettings.Manual) { |
| 169 proxy.Manual.HTTPProxy = /** @type {!CrOnc.ProxyLocation|undefined} */ ( | 169 proxy.Manual.HTTPProxy = /** @type {!CrOnc.ProxyLocation|undefined} */ ( |
| 170 CrOnc.getSimpleActiveProperties( | 170 CrOnc.getSimpleActiveProperties( |
| 171 proxySettings.Manual.HTTPProxy)) || | 171 proxySettings.Manual.HTTPProxy)) || |
| 172 {Host: '', Port: 80}; | 172 {Host: '', Port: 80}; |
| 173 proxy.Manual.SecureHTTPProxy = | 173 proxy.Manual.SecureHTTPProxy = |
| 174 /** @type {!CrOnc.ProxyLocation|undefined} */ ( | 174 /** @type {!CrOnc.ProxyLocation|undefined} */ ( |
| 175 CrOnc.getSimpleActiveProperties( | 175 CrOnc.getSimpleActiveProperties( |
| 176 proxySettings.Manual.SecureHTTPProxy)) || | 176 proxySettings.Manual.SecureHTTPProxy)) || |
| 177 proxy.Manual.HTTPProxy; | 177 {Host: '', Port: 80}; |
| 178 proxy.Manual.FTPProxy = | 178 proxy.Manual.FTPProxy = |
| 179 /** @type {!CrOnc.ProxyLocation|undefined} */ ( | 179 /** @type {!CrOnc.ProxyLocation|undefined} */ ( |
| 180 CrOnc.getSimpleActiveProperties( | 180 CrOnc.getSimpleActiveProperties( |
| 181 proxySettings.Manual.FTPProxy)) || | 181 proxySettings.Manual.FTPProxy)) || |
| 182 proxy.Manual.HTTPProxy; | 182 {Host: '', Port: 80}; |
| 183 proxy.Manual.SOCKS = | 183 proxy.Manual.SOCKS = |
| 184 /** @type {!CrOnc.ProxyLocation|undefined} */ ( | 184 /** @type {!CrOnc.ProxyLocation|undefined} */ ( |
| 185 CrOnc.getSimpleActiveProperties(proxySettings.Manual.SOCKS)) || | 185 CrOnc.getSimpleActiveProperties(proxySettings.Manual.SOCKS)) || |
| 186 proxy.Manual.HTTPProxy; | 186 {Host: '', Port: 80}; |
| 187 var jsonHttp = proxy.Manual.HTTPProxy; | 187 var jsonHttp = proxy.Manual.HTTPProxy; |
| 188 this.useSameProxy_ = | 188 this.useSameProxy_ = |
| 189 CrOnc.proxyMatches(jsonHttp, proxy.Manual.SecureHTTPProxy) && | 189 (CrOnc.proxyMatches(jsonHttp, proxy.Manual.SecureHTTPProxy) && |
| 190 CrOnc.proxyMatches(jsonHttp, proxy.Manual.FTPProxy) && | 190 CrOnc.proxyMatches(jsonHttp, proxy.Manual.FTPProxy) && |
| 191 CrOnc.proxyMatches(jsonHttp, proxy.Manual.SOCKS); | 191 CrOnc.proxyMatches(jsonHttp, proxy.Manual.SOCKS)) || |
| 192 (!proxy.Manual.SecureHTTPProxy.Host && |
| 193 !proxy.Manual.FTPProxy.Host && !proxy.Manual.SOCKS.Host); |
| 192 } | 194 } |
| 193 if (proxySettings.ExcludeDomains) { | 195 if (proxySettings.ExcludeDomains) { |
| 194 proxy.ExcludeDomains = /** @type {!Array<string>|undefined} */ ( | 196 proxy.ExcludeDomains = /** @type {!Array<string>|undefined} */ ( |
| 195 CrOnc.getActiveValue(proxySettings.ExcludeDomains)); | 197 CrOnc.getActiveValue(proxySettings.ExcludeDomains)); |
| 196 } | 198 } |
| 197 proxy.PAC = /** @type {string|undefined} */ ( | 199 proxy.PAC = /** @type {string|undefined} */ ( |
| 198 CrOnc.getActiveValue(proxySettings.PAC)); | 200 CrOnc.getActiveValue(proxySettings.PAC)); |
| 199 } | 201 } |
| 200 // Use saved ExcludeDomanains and Manual if not defined. | 202 // Use saved ExcludeDomanains and Manual if not defined. |
| 201 proxy.ExcludeDomains = proxy.ExcludeDomains || this.savedExcludeDomains_; | 203 proxy.ExcludeDomains = proxy.ExcludeDomains || this.savedExcludeDomains_; |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 }, | 251 }, |
| 250 PAC: '' | 252 PAC: '' |
| 251 }; | 253 }; |
| 252 }, | 254 }, |
| 253 | 255 |
| 254 /** | 256 /** |
| 255 * Called when the proxy changes in the UI. | 257 * Called when the proxy changes in the UI. |
| 256 * @private | 258 * @private |
| 257 */ | 259 */ |
| 258 sendProxyChange_: function() { | 260 sendProxyChange_: function() { |
| 259 if (this.proxy_.Type == CrOnc.ProxySettingsType.MANUAL) { | 261 var proxy = |
| 260 var proxy = | 262 /** @type {!CrOnc.ProxySettings} */ (Object.assign({}, this.proxy_)); |
| 261 /** @type {!CrOnc.ProxySettings} */ (Object.assign({}, this.proxy_)); | 263 if (proxy.Type == CrOnc.ProxySettingsType.MANUAL) { |
| 262 var manual = proxy.Manual; | 264 var manual = proxy.Manual; |
| 263 var defaultProxy = manual.HTTPProxy; | 265 var defaultProxy = manual.HTTPProxy || {Host: '', Port: 80}; |
| 264 if (!defaultProxy || !defaultProxy.Host) | 266 if (this.useSameProxy_) { |
| 265 return; | |
| 266 if (this.useSameProxy_ || !this.get('SecureHTTPProxy.Host', manual)) { | |
| 267 proxy.Manual.SecureHTTPProxy = /** @type {!CrOnc.ProxyLocation} */ ( | 267 proxy.Manual.SecureHTTPProxy = /** @type {!CrOnc.ProxyLocation} */ ( |
| 268 Object.assign({}, defaultProxy)); | 268 Object.assign({}, defaultProxy)); |
| 269 } | |
| 270 if (this.useSameProxy_ || !this.get('FTPProxy.Host', manual)) { | |
| 271 proxy.Manual.FTPProxy = /** @type {!CrOnc.ProxyLocation} */ ( | 269 proxy.Manual.FTPProxy = /** @type {!CrOnc.ProxyLocation} */ ( |
| 272 Object.assign({}, defaultProxy)); | 270 Object.assign({}, defaultProxy)); |
| 273 } | |
| 274 if (this.useSameProxy_ || !this.get('SOCKS.Host', manual)) { | |
| 275 proxy.Manual.SOCKS = /** @type {!CrOnc.ProxyLocation} */ ( | 271 proxy.Manual.SOCKS = /** @type {!CrOnc.ProxyLocation} */ ( |
| 276 Object.assign({}, defaultProxy)); | 272 Object.assign({}, defaultProxy)); |
| 273 } else { |
| 274 // Remove properties with empty hosts to unset them. |
| 275 if (manual.HTTPProxy && !manual.HTTPProxy.Host) |
| 276 delete manual.HTTPProxy; |
| 277 if (manual.SecureHTTPProxy && !manual.SecureHTTPProxy.Host) |
| 278 delete manual.SecureHTTPProxy; |
| 279 if (manual.FTPProxy && !manual.FTPProxy.Host) |
| 280 delete manual.FTPProxy; |
| 281 if (manual.SOCKS && !manual.SOCKS.Host) |
| 282 delete manual.SOCKS; |
| 277 } | 283 } |
| 278 this.savedManual_ = Object.assign({}, proxy.Manual); | 284 this.savedManual_ = Object.assign({}, manual); |
| 279 this.savedExcludeDomains_ = proxy.ExcludeDomains; | 285 this.savedExcludeDomains_ = proxy.ExcludeDomains; |
| 280 this.proxy_ = proxy; | 286 } else if (proxy.Type == CrOnc.ProxySettingsType.PAC) { |
| 281 } else if (this.proxy_.Type == CrOnc.ProxySettingsType.PAC) { | 287 if (!proxy.PAC) |
| 282 if (!this.proxy_.PAC) | |
| 283 return; | 288 return; |
| 284 } | 289 } |
| 285 this.fire('proxy-change', {field: 'ProxySettings', value: this.proxy_}); | 290 this.fire('proxy-change', {field: 'ProxySettings', value: proxy}); |
| 286 this.proxyModified_ = false; | 291 this.proxyModified_ = false; |
| 287 }, | 292 }, |
| 288 | 293 |
| 289 /** | 294 /** |
| 290 * Event triggered when the selected proxy type changes. | 295 * Event triggered when the selected proxy type changes. |
| 291 * @param {!Event} event | 296 * @param {!Event} event |
| 292 * @private | 297 * @private |
| 293 */ | 298 */ |
| 294 onTypeChange_: function(event) { | 299 onTypeChange_: function(event) { |
| 295 var target = /** @type {!HTMLSelectElement} */ (event.target); | 300 var target = /** @type {!HTMLSelectElement} */ (event.target); |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 this.networkProperties.Source == 'DevicePolicy'; | 434 this.networkProperties.Source == 'DevicePolicy'; |
| 430 }, | 435 }, |
| 431 | 436 |
| 432 /** | 437 /** |
| 433 * @return {boolean} | 438 * @return {boolean} |
| 434 * @private | 439 * @private |
| 435 */ | 440 */ |
| 436 isSaveManualProxyEnabled_: function() { | 441 isSaveManualProxyEnabled_: function() { |
| 437 if (!this.proxyModified_) | 442 if (!this.proxyModified_) |
| 438 return false; | 443 return false; |
| 439 return !!this.get('HTTPProxy.Host', this.proxy_.Manual); | 444 var manual = this.proxy_.Manual; |
| 445 var httpHost = this.get('HTTPProxy.Host', manual); |
| 446 if (this.useSameProxy_) |
| 447 return !!httpHost; |
| 448 return !!httpHost || !!this.get('SecureHTTPProxy.Host', manual) || |
| 449 !!this.get('FTPProxy.Host', manual) || !!this.get('SOCKS.Host', manual); |
| 440 }, | 450 }, |
| 441 | 451 |
| 442 /** | 452 /** |
| 443 * @param {string} property The property to test | 453 * @param {string} property The property to test |
| 444 * @param {string} value The value to test against | 454 * @param {string} value The value to test against |
| 445 * @return {boolean} True if property == value | 455 * @return {boolean} True if property == value |
| 446 * @private | 456 * @private |
| 447 */ | 457 */ |
| 448 matches_: function(property, value) { | 458 matches_: function(property, value) { |
| 449 return property == value; | 459 return property == value; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 473 * Handles the shared proxy confirmation dialog 'Cancel' button or a cancel | 483 * Handles the shared proxy confirmation dialog 'Cancel' button or a cancel |
| 474 * event. | 484 * event. |
| 475 * @private | 485 * @private |
| 476 */ | 486 */ |
| 477 onAllowSharedDialogCancel_: function() { | 487 onAllowSharedDialogCancel_: function() { |
| 478 /** @type {!SettingsCheckboxElement} */ (this.$.allowShared) | 488 /** @type {!SettingsCheckboxElement} */ (this.$.allowShared) |
| 479 .resetToPrefValue(); | 489 .resetToPrefValue(); |
| 480 this.$.confirmAllowSharedDialog.close(); | 490 this.$.confirmAllowSharedDialog.close(); |
| 481 }, | 491 }, |
| 482 }); | 492 }); |
| OLD | NEW |