Chromium Code Reviews| Index: chrome/browser/resources/settings/default_browser_page/default_browser_page.js |
| diff --git a/chrome/browser/resources/settings/default_browser_page/default_browser_page.js b/chrome/browser/resources/settings/default_browser_page/default_browser_page.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..cde96233d417a43d4d995ebcea91266b71840070 |
| --- /dev/null |
| +++ b/chrome/browser/resources/settings/default_browser_page/default_browser_page.js |
| @@ -0,0 +1,129 @@ |
| +// 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). |
| + * |
| + * Example: |
| + * |
| + * <iron-animated-pages> |
| + * <settings-default-browser-page prefs="{{prefs}}"> |
| + * </settings-default-browser-page> |
| + * ... other pages ... |
| + * </iron-animated-pages> |
| + * |
| + * @group Chrome Settings Elements |
| + * @element settings-default-browser-page |
| + */ |
| +Polymer({ |
| + is: 'settings-default-browser-page', |
| + |
| + properties: { |
| + /** |
| + * Preferences state. |
| + * @type {Object|undefined} |
|
stevenjb
2015/10/08 18:15:39
nit: @type not needed since it's just an Object
dschuyler
2015/10/08 18:26:23
Done.
|
| + */ |
| + prefs: { |
| + type: Object, |
| + notify: true, |
| + }, |
| + |
| + /** |
| + * The current active route. |
| + * @type {Object|undefined} |
|
stevenjb
2015/10/08 18:15:39
nit: @type not needed
dschuyler
2015/10/08 18:26:23
Done.
|
| + */ |
| + currentRoute: { |
| + type: Object, |
| + notify: true, |
| + }, |
| + |
| + /** |
| + * Translated strings used in data binding. |
| + * @type {!Object} |
| + */ |
| + i18n_: { |
|
Dan Beam
2015/10/08 18:42:42
would you mind extracting this into a behavior?
i
stevenjb
2015/10/08 19:50:36
I'm actually working on that right now if you want
dschuyler
2015/10/09 01:08:45
Acknowledged.
dschuyler
2015/10/09 01:08:45
Done.
|
| + type: Object, |
| + value: function() { |
| + return { |
| + defaultBroswerMakeDefault: loadTimeData.getString( |
| + 'defaultBroswerMakeDefault'), |
| + }; |
| + }, |
| + }, |
| + |
| + /** |
| + * A message about whether Chrome is the default browser. |
| + * @type {string} |
|
stevenjb
2015/10/08 18:15:39
nit: @type not needed
dschuyler
2015/10/08 18:26:23
Done.
|
| + */ |
| + message_: { |
| + type: String, |
| + }, |
| + |
| + /** |
| + * Show or hide an error indicator showing whether SetAsDefault succeeded. |
| + * @type {boolean} |
|
stevenjb
2015/10/08 18:15:39
nit: @type not needed
dschuyler
2015/10/08 18:26:23
Done.
|
| + */ |
| + showError_: { |
| + type: Boolean, |
| + value: false, |
| + }, |
| + |
| + /** |
| + * Only show the SetAsDefault button if we have permission to set it. |
| + * @type {boolean} |
|
stevenjb
2015/10/08 18:15:39
nit: @type not needed
dschuyler
2015/10/08 18:26:23
Done.
|
| + */ |
| + showButton_: { |
| + type: Boolean, |
| + value: true, |
|
Dan Beam
2015/10/08 18:42:42
do you know that showButton_ = true is likely to h
dschuyler
2015/10/09 01:08:45
Done.
|
| + }, |
| + }, |
| + |
| + attached: function() { |
| + var self = this; |
| + cr.define('Settings', function() { |
| + return { |
| + setAsDefaultConcluded: function() { |
| + return self.setAsDefaultConcluded_.apply(self, arguments); |
| + }, |
| + updateDefaultBrowserState: function() { |
| + return self.updateDefaultBrowserState_.apply(self, arguments); |
| + }, |
| + }; |
| + }); |
| + chrome.send('SettingsDefaultBrowser.requestDefaultBrowserState'); |
|
Dan Beam
2015/10/08 18:42:42
shouldn't this all be done from ready?
dschuyler
2015/10/09 01:08:45
Done.
|
| + }, |
| + |
| + /** |
| + * @param {boolean} succeeded |
| + * @private |
| + */ |
| + setAsDefaultConcluded_: function(succeeded) { |
| + this.showError_ = !succeeded; |
| + }, |
| + |
| + /** |
| + * @param {boolean} isDefault |
|
Dan Beam
2015/10/08 18:42:42
Whether Chrome is currently the user's default bro
dschuyler
2015/10/09 01:08:45
Done.
|
| + * @param {boolean} canBeDefault |
|
Dan Beam
2015/10/08 18:42:42
Whether Chrome can be the default browser on this
dschuyler
2015/10/09 01:08:45
Done.
|
| + * @private |
| + */ |
| + updateDefaultBrowserState_: function(isDefault, canBeDefault) { |
| + this.showButton_ = !isDefault && canBeDefault; |
| + if (canBeDefault) { |
| + if (isDefault) { |
| + this.message_ = loadTimeData.getString('defaultBroswerDefault'); |
| + } else { |
| + this.message_ = loadTimeData.getString('defaultBroswerNotDefault'); |
| + } |
|
Dan Beam
2015/10/08 18:42:42
no curlies
Dan Beam
2015/10/08 18:42:42
nit: ternary
dschuyler
2015/10/09 01:08:45
Done.
dschuyler
2015/10/09 01:08:45
Acknowledged.
|
| + } else { |
| + this.message_ = loadTimeData.getString('defaultBroswerUnknown'); |
| + } |
| + }, |
| + |
| + /** @private */ |
| + onSetDefaultBrowserTap_: function() { |
| + chrome.send('SettingsDefaultBrowser.setAsDefaultBrowser'); |
| + }, |
| +}); |