| Index: chrome/browser/resources/settings/appearance_page/appearance_page.js
|
| diff --git a/chrome/browser/resources/settings/appearance_page/appearance_page.js b/chrome/browser/resources/settings/appearance_page/appearance_page.js
|
| index c38b25e7e0781c859152496a4259242555dc2db3..52691cb918f6c2e4d7f0b1bbc1f59d9e3a4721ed 100644
|
| --- a/chrome/browser/resources/settings/appearance_page/appearance_page.js
|
| +++ b/chrome/browser/resources/settings/appearance_page/appearance_page.js
|
| @@ -30,6 +30,14 @@ Polymer({
|
| },
|
|
|
| /**
|
| + * Preferences state.
|
| + */
|
| + prefs: {
|
| + type: Object,
|
| + notify: true,
|
| + },
|
| +
|
| + /**
|
| * @private
|
| */
|
| allowResetTheme_: {
|
| @@ -39,32 +47,78 @@ Polymer({
|
| },
|
|
|
| /**
|
| + * @private
|
| + */
|
| + defaultZoomLevel_: {
|
| + notify: true,
|
| + type: Object,
|
| + value: function() {
|
| + return {
|
| + type: chrome.settingsPrivate.PrefType.NUMBER,
|
| + };
|
| + },
|
| + },
|
| +
|
| + /**
|
| * List of options for the font size drop-down menu.
|
| - * The order of entries in this array matches the
|
| - * prefs.browser.clear_data.time_period.value enum.
|
| - * @private {!Array<!Array<{0: number, 1: string}>>}
|
| + * @type {!DropdownMenuOptionList}
|
| */
|
| fontSizeOptions_: {
|
| readOnly: true,
|
| type: Array,
|
| value: function() {
|
| return [
|
| - [9, loadTimeData.getString('verySmall')],
|
| - [12, loadTimeData.getString('small')],
|
| - [16, loadTimeData.getString('medium')],
|
| - [20, loadTimeData.getString('large')],
|
| - [24, loadTimeData.getString('veryLarge')],
|
| + {value: 9, name: loadTimeData.getString('verySmall')},
|
| + {value: 12, name: loadTimeData.getString('small')},
|
| + {value: 16, name: loadTimeData.getString('medium')},
|
| + {value: 20, name: loadTimeData.getString('large')},
|
| + {value: 24, name: loadTimeData.getString('veryLarge')},
|
| ];
|
| },
|
| },
|
| +
|
| + /**
|
| + * List of options for the page zoom drop-down menu.
|
| + * @type {!DropdownMenuOptionList}
|
| + */
|
| + pageZoomOptions_: {
|
| + readOnly: true,
|
| + type: Array,
|
| + value: [
|
| + {value: 25, name: '25%'},
|
| + {value: 33, name: '33%'},
|
| + {value: 50, name: '50%'},
|
| + {value: 67, name: '67%'},
|
| + {value: 75, name: '75%'},
|
| + {value: 90, name: '90%'},
|
| + {value: 100, name: '100%'},
|
| + {value: 110, name: '110%'},
|
| + {value: 125, name: '125%'},
|
| + {value: 150, name: '150%'},
|
| + {value: 175, name: '175%'},
|
| + {value: 200, name: '200%'},
|
| + {value: 300, name: '300%'},
|
| + {value: 400, name: '400%'},
|
| + {value: 500, name: '500%'},
|
| + ],
|
| + },
|
| },
|
|
|
| behaviors: [
|
| I18nBehavior,
|
| ],
|
|
|
| + observers: [
|
| + 'zoomLevelChanged_(defaultZoomLevel_.value)',
|
| + ],
|
| +
|
| ready: function() {
|
| this.$.defaultFontSize.menuOptions = this.fontSizeOptions_;
|
| + this.$.pageZoom.menuOptions = this.pageZoomOptions_;
|
| + // TODO(dschuyler): Look into adding a listener for the
|
| + // default zoom percent.
|
| + chrome.settingsPrivate.getDefaultZoomPercent(
|
| + this.zoomPrefChanged_.bind(this));
|
| },
|
|
|
| /** @override */
|
| @@ -104,4 +158,23 @@ Polymer({
|
| showFontsPage_: function() {
|
| return this.currentRoute.subpage[0] == 'appearance-fonts';
|
| },
|
| +
|
| + /**
|
| + * @param {number} percent The integer percentage of the page zoom.
|
| + * @private
|
| + */
|
| + zoomPrefChanged_: function(percent) {
|
| + this.set('defaultZoomLevel_.value', percent);
|
| + },
|
| +
|
| + /**
|
| + * @param {number} percent The integer percentage of the page zoom.
|
| + * @private
|
| + */
|
| + zoomLevelChanged_: function(percent) {
|
| + // The |percent| may be undefined on startup.
|
| + if (percent === undefined)
|
| + return;
|
| + chrome.settingsPrivate.setDefaultZoomPercent(percent);
|
| + },
|
| });
|
|
|