| 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 notified 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 notified when the list of VPN providers changes. |  | 
| 49      * @param {!function()} observer The observer to add. |  | 
| 50      */ |  | 
| 51     addObserver: function(observer) { |  | 
| 52       this.observers_.push(observer); |  | 
| 53     }, |  | 
| 54 |  | 
| 55     /** |  | 
| 56      * Formats a network name for display purposes. If the network belongs to | 29      * Formats a network name for display purposes. If the network belongs to | 
| 57      * a third-party VPN provider, the provider name is added to the network | 30      * a third-party VPN provider, the provider name is added to the network | 
| 58      * name. | 31      * name. | 
| 59      * @param {cr.onc.OncData} onc ONC data describing this network. | 32      * @param {cr.onc.OncData} onc ONC data describing this network. | 
| 60      * @return {string} The resulting display name. | 33      * @return {string} The resulting display name. | 
| 61      * @private | 34      * @private | 
| 62      */ | 35      */ | 
| 63     formatNetworkName_: function(onc) { | 36     formatNetworkName_: function(onc) { | 
| 64       var networkName = onc.getTranslatedValue('Name'); | 37       var networkName = onc.getTranslatedValue('Name'); | 
| 65       if (onc.getActiveValue('VPN.Type') != 'ThirdPartyVPN') | 38       if (onc.getActiveValue('VPN.Type') != 'ThirdPartyVPN') | 
| 66         return networkName; | 39         return networkName; | 
| 67       var extensionID = onc.getActiveValue('VPN.ThirdPartyVPN.ExtensionID'); | 40       var extensionID = onc.getActiveValue('VPN.ThirdPartyVPN.ExtensionID'); | 
| 68       for (var i = 0; i < this.providers_.length; ++i) { | 41       for (var i = 0; i < this.providers_.length; ++i) { | 
| 69         if (extensionID == this.providers_[i].extensionID) { | 42         if (extensionID == this.providers_[i].extensionID) { | 
| 70           return loadTimeData.getStringF('vpnNameTemplate', | 43           return loadTimeData.getStringF('vpnNameTemplate', | 
| 71                                          this.providers_[i].name, | 44                                          this.providers_[i].name, | 
| 72                                          networkName); | 45                                          networkName); | 
| 73         } | 46         } | 
| 74       } | 47       } | 
| 75       return networkName; | 48       return networkName; | 
| 76     }, | 49     }, | 
| 77   }; | 50   }; | 
| 78 | 51 | 
| 79   /** | 52   /** | 
| 80    * Adds an observer to be notified when the list of VPN providers changes. |  | 
| 81    * @param {!function()} observer The observer to add. |  | 
| 82    */ |  | 
| 83   VPNProviders.addObserver = function(observer) { |  | 
| 84     VPNProviders.getInstance().addObserver(observer); |  | 
| 85   }; |  | 
| 86 |  | 
| 87   /** |  | 
| 88    * Returns the list of VPN providers enabled in the primary user's profile. | 53    * Returns the list of VPN providers enabled in the primary user's profile. | 
| 89    * @return {!Array<{name: string, extensionID: ?string}>} The list of VPN | 54    * @return {!Array<{name: string, extensionID: ?string}>} The list of VPN | 
| 90    *     providers enabled in the primary user's profile. | 55    *     providers enabled in the primary user's profile. | 
| 91    */ | 56    */ | 
| 92   VPNProviders.getProviders = function() { | 57   VPNProviders.getProviders = function() { | 
| 93     return VPNProviders.getInstance().providers; | 58     return VPNProviders.getInstance().providers_; | 
| 94   }; | 59   }; | 
| 95 | 60 | 
| 96   /** | 61   /** | 
| 97    * Replaces the list of VPN providers enabled in the primary user's profile. | 62    * Replaces the list of VPN providers enabled in the primary user's profile. | 
| 98    * @param {!Array<{name: string, extensionID: ?string}>} providers The list | 63    * @param {!Array<{name: string, extensionID: ?string}>} providers The list | 
| 99    *     of VPN providers enabled in the primary user's profile. | 64    *     of VPN providers enabled in the primary user's profile. | 
| 100    */ | 65    */ | 
| 101   VPNProviders.setProviders = function(providers) { | 66   VPNProviders.setProviders = function(providers) { | 
| 102     VPNProviders.getInstance().providers = providers; | 67     VPNProviders.getInstance().providers_ = providers; | 
| 103   }; | 68   }; | 
| 104 | 69 | 
| 105   /** | 70   /** | 
| 106    * Formats a network name for display purposes. If the network belongs to a | 71    * Formats a network name for display purposes. If the network belongs to a | 
| 107    * third-party VPN provider, the provider name is added to the network name. | 72    * third-party VPN provider, the provider name is added to the network name. | 
| 108    * @param {cr.onc.OncData} onc ONC data describing this network. | 73    * @param {cr.onc.OncData} onc ONC data describing this network. | 
| 109    * @return {string} The resulting display name. | 74    * @return {string} The resulting display name. | 
| 110    */ | 75    */ | 
| 111   VPNProviders.formatNetworkName = function(onc) { | 76   VPNProviders.formatNetworkName = function(onc) { | 
| 112     return VPNProviders.getInstance().formatNetworkName_(onc); | 77     return VPNProviders.getInstance().formatNetworkName_(onc); | 
| 113   }; | 78   }; | 
| 114 | 79 | 
| 115   // Export | 80   // Export | 
| 116   return { | 81   return { | 
| 117     VPNProviders: VPNProviders | 82     VPNProviders: VPNProviders | 
| 118   }; | 83   }; | 
| 119 }); | 84 }); | 
| OLD | NEW | 
|---|