 Chromium Code Reviews
 Chromium Code Reviews Issue 1388353003:
  [MD settings] adding DefaultBrowser settings page  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 1388353003:
  [MD settings] adding DefaultBrowser settings page  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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'); | 
| + }, | 
| +}); |