| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /** |
| * @fileoverview |
| * 'settings-default-browser-page' is the settings page that contains |
| * settings to change the default browser (i.e. which the OS will open). |
| */ |
| Polymer({ |
| is: 'settings-default-browser-page', |
| |
| behaviors: [WebUIListenerBehavior], |
| |
| properties: { |
| /** @private */ |
| isDefault_: Boolean, |
| |
| /** @private */ |
| isSecondaryInstall_: Boolean, |
| |
| /** @private */ |
| isUnknownError_: Boolean, |
| |
| /** @private */ |
| maySetDefaultBrowser_: Boolean, |
| }, |
| |
| /** @private {settings.DefaultBrowserBrowserProxy} */ |
| browserProxy_: null, |
| |
| /** @override */ |
| created: function() { |
| this.browserProxy_ = settings.DefaultBrowserBrowserProxyImpl.getInstance(); |
| }, |
| |
| /** @override */ |
| ready: function() { |
| this.addWebUIListener( |
| 'settings.updateDefaultBrowserState', |
| this.updateDefaultBrowserState_.bind(this)); |
| |
| this.browserProxy_.requestDefaultBrowserState().then( |
| this.updateDefaultBrowserState_.bind(this)); |
| }, |
| |
| /** |
| * @param {!DefaultBrowserInfo} defaultBrowserState |
| * @private |
| */ |
| updateDefaultBrowserState_: function(defaultBrowserState) { |
| this.isDefault_ = false; |
| this.isSecondaryInstall_ = false; |
| this.isUnknownError_ = false; |
| this.maySetDefaultBrowser_ = false; |
| |
| if (defaultBrowserState.isDefault) |
| this.isDefault_ = true; |
| else if (!defaultBrowserState.canBeDefault) |
| this.isSecondaryInstall_ = true; |
| else if ( |
| !defaultBrowserState.isDisabledByPolicy && |
| !defaultBrowserState.isUnknownError) |
| this.maySetDefaultBrowser_ = true; |
| else |
| this.isUnknownError_ = true; |
| }, |
| |
| /** @private */ |
| onSetDefaultBrowserTap_: function() { |
| this.browserProxy_.setAsDefaultBrowser(); |
| }, |
| }); |