Chromium Code Reviews| Index: chrome/browser/resources/settings/on_startup_page/startup_urls_page.js |
| diff --git a/chrome/browser/resources/settings/on_startup_page/startup_urls_page.js b/chrome/browser/resources/settings/on_startup_page/startup_urls_page.js |
| index 9bce9e97b960c5ab00f652ffabac3385e336fb0d..ac860a268d72142bc701cf5c44252e860735deb0 100644 |
| --- a/chrome/browser/resources/settings/on_startup_page/startup_urls_page.js |
| +++ b/chrome/browser/resources/settings/on_startup_page/startup_urls_page.js |
| @@ -36,18 +36,48 @@ Polymer({ |
| /** @type {!Array<string>} */ |
| savedUrlList: { |
| type: Array, |
| - value: function() { return []; } |
| }, |
| }, |
| + observers: [ |
| + 'prefsChanged_(prefs.session.startup_urls.value.*)', |
| + ], |
| + |
| + attached: function() { |
| + var updateFunction = this.updateStartupPages_.bind(this); |
| + cr.define('Settings', function() { |
| + return { |
| + updateStartupPages: function(data) { |
|
michaelpg
2015/09/17 21:18:13
why not just:
updateStartupPages: updateFunction,
|
| + updateFunction(data); |
| + }, |
| + }; |
| + }); |
| + }, |
| + |
| + /** @private */ |
| + prefsChanged_: function(change) { |
| + if (this.savedUrlList == undefined && |
| + this.get('prefs.session.startup_urls')) { |
| + this.savedUrlList = this.prefs.session.startup_urls.value.slice(); |
| + } |
| + }, |
| + |
| + /** @private */ |
| + updateStartupPages_: function(data) { |
| + var urlArray = data.map(function(datum) { return datum.url; }); |
| + this.set('prefs.session.startup_urls.value', urlArray); |
| + }, |
| + |
| /** @private */ |
| onUseCurrentPagesTap_: function() { |
| - // TODO(dschuyler): I'll be making a chrome.send call here. |
| + chrome.send('setStartupPagesToCurrentPages'); |
| }, |
| /** @private */ |
| onCancelTap_: function() { |
| - this.set('prefs.session.startup_urls.value', this.savedUrlList.slice()); |
| + if (this.savedUrlList !== undefined) { |
| + this.set('prefs.session.startup_urls.value', this.savedUrlList.slice()); |
| + } |
| }, |
| /** @private */ |