| Index: chrome/browser/resources/options/chromeos/vpn_providers.js
|
| diff --git a/chrome/browser/resources/options/chromeos/vpn_providers.js b/chrome/browser/resources/options/chromeos/vpn_providers.js
|
| index 911c68487fbf67238d92644ad4eb93e2329bdd87..06da41b5339940a846dcf01029334353b6eca1f3 100644
|
| --- a/chrome/browser/resources/options/chromeos/vpn_providers.js
|
| +++ b/chrome/browser/resources/options/chromeos/vpn_providers.js
|
| @@ -26,6 +26,34 @@ cr.define('options', function() {
|
| providers_: [],
|
|
|
| /**
|
| + * Observers who will be called when the list of VPN providers changes.
|
| + * @type {!Array<!function()>}
|
| + */
|
| + observers_: [],
|
| +
|
| + /**
|
| + * The VPN providers enabled in the primary user's profile.
|
| + * @type {!Array<{name: string, extensionID: ?string}>}
|
| + */
|
| + get providers() {
|
| + return this.providers_;
|
| + },
|
| + set providers(providers) {
|
| + this.providers_ = providers;
|
| + for (var i = 0; i < this.observers_.length; ++i)
|
| + this.observers_[i]();
|
| + },
|
| +
|
| + /**
|
| + * Adds an observer to be called when the list of VPN providers changes.
|
| + * @param {!function()} observer The observer to add.
|
| + * @private
|
| + */
|
| + addObserver_: function(observer) {
|
| + this.observers_.push(observer);
|
| + },
|
| +
|
| + /**
|
| * Formats a network name for display purposes. If the network belongs to
|
| * a third-party VPN provider, the provider name is added to the network
|
| * name.
|
| @@ -50,12 +78,23 @@ cr.define('options', function() {
|
| };
|
|
|
| /**
|
| + * Adds an observer to be called when the list of VPN providers changes. Note
|
| + * that an observer may in turn call setProviders() but should be careful not
|
| + * to get stuck in an infinite loop as every change to the list of VPN
|
| + * providers will cause the observers to be called again.
|
| + * @param {!function()} observer The observer to add.
|
| + */
|
| + VPNProviders.addObserver = function(observer) {
|
| + VPNProviders.getInstance().addObserver_(observer);
|
| + };
|
| +
|
| + /**
|
| * Returns the list of VPN providers enabled in the primary user's profile.
|
| * @return {!Array<{name: string, extensionID: ?string}>} The list of VPN
|
| * providers enabled in the primary user's profile.
|
| */
|
| VPNProviders.getProviders = function() {
|
| - return VPNProviders.getInstance().providers_;
|
| + return VPNProviders.getInstance().providers;
|
| };
|
|
|
| /**
|
| @@ -64,7 +103,7 @@ cr.define('options', function() {
|
| * of VPN providers enabled in the primary user's profile.
|
| */
|
| VPNProviders.setProviders = function(providers) {
|
| - VPNProviders.getInstance().providers_ = providers;
|
| + VPNProviders.getInstance().providers = providers;
|
| };
|
|
|
| /**
|
|
|