| 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 A singleton that keeps track of the VPN providers enabled in | 6  * @fileoverview A singleton that keeps track of the VPN providers enabled in | 
| 7  * the primary user's profile. | 7  * the primary user's profile. | 
| 8  */ | 8  */ | 
| 9 | 9 | 
| 10 cr.define('options', function() { | 10 cr.define('options', function() { | 
| 11   /** | 11   /** | 
| 12    * @constructor | 12    * @constructor | 
| 13    */ | 13    */ | 
| 14   function VPNProviders() { | 14   function VPNProviders() { | 
| 15   } | 15   } | 
| 16 | 16 | 
| 17   cr.addSingletonGetter(VPNProviders); | 17   cr.addSingletonGetter(VPNProviders); | 
| 18 | 18 | 
| 19   VPNProviders.prototype = { | 19   VPNProviders.prototype = { | 
| 20     /** | 20     /** | 
| 21      * The VPN providers enabled in the primary user's profile. Each provider | 21      * The VPN providers enabled in the primary user's profile. Each provider | 
| 22      * has a name. Third-party VPN providers additionally have an extension ID. | 22      * has a name. Third-party VPN providers additionally have an extension ID. | 
| 23      * @type {!Array<{name: string, extensionID: ?string}>} | 23      * @type {!Array<{name: string, extensionID: ?string}>} | 
| 24      * @private | 24      * @private | 
| 25      */ | 25      */ | 
| 26     providers_: [], | 26     providers_: [], | 
| 27 | 27 | 
| 28     /** | 28     /** | 
|  | 29      * Observers who will be called when the list of VPN providers changes. | 
|  | 30      * @type {!Array<!function()>} | 
|  | 31      */ | 
|  | 32     observers_: [], | 
|  | 33 | 
|  | 34     /** | 
|  | 35      * The VPN providers enabled in the primary user's profile. | 
|  | 36      * @type {!Array<{name: string, extensionID: ?string}>} | 
|  | 37      */ | 
|  | 38     get providers() { | 
|  | 39       return this.providers_; | 
|  | 40     }, | 
|  | 41     set providers(providers) { | 
|  | 42       this.providers_ = providers; | 
|  | 43       for (var i = 0; i < this.observers_.length; ++i) | 
|  | 44         this.observers_[i](); | 
|  | 45     }, | 
|  | 46 | 
|  | 47     /** | 
|  | 48      * Adds an observer to be called when the list of VPN providers changes. | 
|  | 49      * @param {!function()} observer The observer to add. | 
|  | 50      * @private | 
|  | 51      */ | 
|  | 52     addObserver_: function(observer) { | 
|  | 53       this.observers_.push(observer); | 
|  | 54     }, | 
|  | 55 | 
|  | 56     /** | 
| 29      * Formats a network name for display purposes. If the network belongs to | 57      * Formats a network name for display purposes. If the network belongs to | 
| 30      * a third-party VPN provider, the provider name is added to the network | 58      * a third-party VPN provider, the provider name is added to the network | 
| 31      * name. | 59      * name. | 
| 32      * @param {cr.onc.OncData} onc ONC data describing this network. | 60      * @param {cr.onc.OncData} onc ONC data describing this network. | 
| 33      * @return {string} The resulting display name. | 61      * @return {string} The resulting display name. | 
| 34      * @private | 62      * @private | 
| 35      */ | 63      */ | 
| 36     formatNetworkName_: function(onc) { | 64     formatNetworkName_: function(onc) { | 
| 37       var networkName = onc.getTranslatedValue('Name'); | 65       var networkName = onc.getTranslatedValue('Name'); | 
| 38       if (onc.getActiveValue('VPN.Type') != 'ThirdPartyVPN') | 66       if (onc.getActiveValue('VPN.Type') != 'ThirdPartyVPN') | 
| 39         return networkName; | 67         return networkName; | 
| 40       var extensionID = onc.getActiveValue('VPN.ThirdPartyVPN.ExtensionID'); | 68       var extensionID = onc.getActiveValue('VPN.ThirdPartyVPN.ExtensionID'); | 
| 41       for (var i = 0; i < this.providers_.length; ++i) { | 69       for (var i = 0; i < this.providers_.length; ++i) { | 
| 42         if (extensionID == this.providers_[i].extensionID) { | 70         if (extensionID == this.providers_[i].extensionID) { | 
| 43           return loadTimeData.getStringF('vpnNameTemplate', | 71           return loadTimeData.getStringF('vpnNameTemplate', | 
| 44                                          this.providers_[i].name, | 72                                          this.providers_[i].name, | 
| 45                                          networkName); | 73                                          networkName); | 
| 46         } | 74         } | 
| 47       } | 75       } | 
| 48       return networkName; | 76       return networkName; | 
| 49     }, | 77     }, | 
| 50   }; | 78   }; | 
| 51 | 79 | 
| 52   /** | 80   /** | 
|  | 81    * Adds an observer to be called when the list of VPN providers changes. Note | 
|  | 82    * that an observer may in turn call setProviders() but should be careful not | 
|  | 83    * to get stuck in an infinite loop as every change to the list of VPN | 
|  | 84    * providers will cause the observers to be called again. | 
|  | 85    * @param {!function()} observer The observer to add. | 
|  | 86    */ | 
|  | 87   VPNProviders.addObserver = function(observer) { | 
|  | 88     VPNProviders.getInstance().addObserver_(observer); | 
|  | 89   }; | 
|  | 90 | 
|  | 91   /** | 
| 53    * Returns the list of VPN providers enabled in the primary user's profile. | 92    * Returns the list of VPN providers enabled in the primary user's profile. | 
| 54    * @return {!Array<{name: string, extensionID: ?string}>} The list of VPN | 93    * @return {!Array<{name: string, extensionID: ?string}>} The list of VPN | 
| 55    *     providers enabled in the primary user's profile. | 94    *     providers enabled in the primary user's profile. | 
| 56    */ | 95    */ | 
| 57   VPNProviders.getProviders = function() { | 96   VPNProviders.getProviders = function() { | 
| 58     return VPNProviders.getInstance().providers_; | 97     return VPNProviders.getInstance().providers; | 
| 59   }; | 98   }; | 
| 60 | 99 | 
| 61   /** | 100   /** | 
| 62    * Replaces the list of VPN providers enabled in the primary user's profile. | 101    * Replaces the list of VPN providers enabled in the primary user's profile. | 
| 63    * @param {!Array<{name: string, extensionID: ?string}>} providers The list | 102    * @param {!Array<{name: string, extensionID: ?string}>} providers The list | 
| 64    *     of VPN providers enabled in the primary user's profile. | 103    *     of VPN providers enabled in the primary user's profile. | 
| 65    */ | 104    */ | 
| 66   VPNProviders.setProviders = function(providers) { | 105   VPNProviders.setProviders = function(providers) { | 
| 67     VPNProviders.getInstance().providers_ = providers; | 106     VPNProviders.getInstance().providers = providers; | 
| 68   }; | 107   }; | 
| 69 | 108 | 
| 70   /** | 109   /** | 
| 71    * Formats a network name for display purposes. If the network belongs to a | 110    * Formats a network name for display purposes. If the network belongs to a | 
| 72    * third-party VPN provider, the provider name is added to the network name. | 111    * third-party VPN provider, the provider name is added to the network name. | 
| 73    * @param {cr.onc.OncData} onc ONC data describing this network. | 112    * @param {cr.onc.OncData} onc ONC data describing this network. | 
| 74    * @return {string} The resulting display name. | 113    * @return {string} The resulting display name. | 
| 75    */ | 114    */ | 
| 76   VPNProviders.formatNetworkName = function(onc) { | 115   VPNProviders.formatNetworkName = function(onc) { | 
| 77     return VPNProviders.getInstance().formatNetworkName_(onc); | 116     return VPNProviders.getInstance().formatNetworkName_(onc); | 
| 78   }; | 117   }; | 
| 79 | 118 | 
| 80   // Export | 119   // Export | 
| 81   return { | 120   return { | 
| 82     VPNProviders: VPNProviders | 121     VPNProviders: VPNProviders | 
| 83   }; | 122   }; | 
| 84 }); | 123 }); | 
| OLD | NEW | 
|---|