Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 (function() { | 5 (function() { | 
| 6 'use strict'; | 6 'use strict'; | 
| 7 | 7 | 
| 8 /** | 8 /** | 
| 9 * This is the absolute difference maintained between standard and | 9 * This is the absolute difference maintained between standard and | 
| 10 * fixed-width font sizes. http://crbug.com/91922. | 10 * fixed-width font sizes. http://crbug.com/91922. | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 44 /** @private */ | 44 /** @private */ | 
| 45 advancedExtensionSublabel_: String, | 45 advancedExtensionSublabel_: String, | 
| 46 | 46 | 
| 47 /** @private */ | 47 /** @private */ | 
| 48 advancedExtensionUrl_: String, | 48 advancedExtensionUrl_: String, | 
| 49 | 49 | 
| 50 /** @private {!settings.FontsBrowserProxy} */ | 50 /** @private {!settings.FontsBrowserProxy} */ | 
| 51 browserProxy_: Object, | 51 browserProxy_: Object, | 
| 52 | 52 | 
| 53 /** | 53 /** | 
| 54 * The font size used by default. | |
| 55 * @private | |
| 56 */ | |
| 57 defaultFontSize_: { | |
| 58 type: Number, | |
| 59 }, | |
| 60 | |
| 61 /** | |
| 62 * The value of the font size slider. | |
| 63 * @private | |
| 64 */ | |
| 65 fontSizeIndex_: { | |
| 66 type: Number, | |
| 67 }, | |
| 68 | |
| 69 /** | |
| 70 * Common font sizes. | 54 * Common font sizes. | 
| 71 * @private {!Array<number>} | 55 * @private {!Array<number>} | 
| 72 */ | 56 */ | 
| 73 fontSizeRange_: { | 57 fontSizeRange_: { | 
| 74 readOnly: true, | 58 readOnly: true, | 
| 75 type: Array, | 59 type: Array, | 
| 76 value: FONT_SIZE_RANGE_, | 60 value: FONT_SIZE_RANGE_, | 
| 77 }, | 61 }, | 
| 78 | 62 | 
| 79 /** | 63 /** | 
| 80 * Upper bound of the font size slider. | |
| 81 * @private | |
| 82 */ | |
| 83 fontSizeRangeLimit_: { | |
| 84 readOnly: true, | |
| 85 type: Number, | |
| 86 value: FONT_SIZE_RANGE_.length - 1, | |
| 87 }, | |
| 88 | |
| 89 /** | |
| 90 * The interactive value of the minimum font size slider. | |
| 91 * @private | |
| 92 */ | |
| 93 immediateMinimumSizeIndex_: { | |
| 94 observer: 'immediateMinimumSizeIndexChanged_', | |
| 95 type: Number, | |
| 96 }, | |
| 97 | |
| 98 /** | |
| 99 * The interactive value of the font size slider. | |
| 100 * @private | |
| 101 */ | |
| 102 immediateSizeIndex_: { | |
| 103 observer: 'immediateSizeIndexChanged_', | |
| 104 type: Number, | |
| 105 }, | |
| 106 | |
| 107 /** | |
| 108 * Reasonable, minimum font sizes. | 64 * Reasonable, minimum font sizes. | 
| 109 * @private {!Array<number>} | 65 * @private {!Array<number>} | 
| 110 */ | 66 */ | 
| 111 minimumFontSizeRange_: { | 67 minimumFontSizeRange_: { | 
| 112 readOnly: true, | 68 readOnly: true, | 
| 113 type: Array, | 69 type: Array, | 
| 114 value: MINIMUM_FONT_SIZE_RANGE_, | 70 value: MINIMUM_FONT_SIZE_RANGE_, | 
| 115 }, | 71 }, | 
| 116 | 72 | 
| 117 /** | 73 /** | 
| 118 * Upper bound of the minimum font size slider. | |
| 119 * @private | |
| 120 */ | |
| 121 minimumFontSizeRangeLimit_: { | |
| 122 readOnly: true, | |
| 123 type: Number, | |
| 124 value: MINIMUM_FONT_SIZE_RANGE_.length - 1, | |
| 125 }, | |
| 126 | |
| 127 /** | |
| 128 * The font size used at minimum. | |
| 129 * @private | |
| 130 */ | |
| 131 minimumFontSize_: { | |
| 132 type: Number, | |
| 133 }, | |
| 134 | |
| 135 /** | |
| 136 * The value of the minimum font size slider. | |
| 137 * @private | |
| 138 */ | |
| 139 minimumSizeIndex_: { | |
| 140 type: Number, | |
| 141 }, | |
| 142 | |
| 143 /** | |
| 144 * Preferences state. | 74 * Preferences state. | 
| 145 */ | 75 */ | 
| 146 prefs: { | 76 prefs: { | 
| 147 type: Object, | 77 type: Object, | 
| 148 notify: true, | 78 notify: true, | 
| 149 }, | 79 }, | 
| 150 }, | 80 }, | 
| 151 | 81 | 
| 152 observers: [ | 82 observers: [ | 
| 153 'fontSizeChanged_(prefs.webkit.webprefs.default_font_size.value)', | 83 'fontSizeChanged_(prefs.webkit.webprefs.default_font_size.value)', | 
| 154 'minimumFontSizeChanged_(prefs.webkit.webprefs.minimum_font_size.value)', | |
| 155 ], | 84 ], | 
| 156 | 85 | 
| 157 /** @override */ | 86 /** @override */ | 
| 158 created: function() { | 87 created: function() { | 
| 159 this.browserProxy_ = settings.FontsBrowserProxyImpl.getInstance(); | 88 this.browserProxy_ = settings.FontsBrowserProxyImpl.getInstance(); | 
| 160 }, | 89 }, | 
| 161 | 90 | 
| 162 /** @override */ | 91 /** @override */ | 
| 163 ready: function() { | 92 ready: function() { | 
| 164 this.addWebUIListener('advanced-font-settings-installed', | 93 this.addWebUIListener('advanced-font-settings-installed', | 
| 165 this.setAdvancedExtensionInstalled_.bind(this)); | 94 this.setAdvancedExtensionInstalled_.bind(this)); | 
| 166 this.browserProxy_.observeAdvancedFontExtensionAvailable(); | 95 this.browserProxy_.observeAdvancedFontExtensionAvailable(); | 
| 167 | 96 | 
| 168 this.browserProxy_.fetchFontsData().then( | 97 this.browserProxy_.fetchFontsData().then( | 
| 169 this.setFontsData_.bind(this)); | 98 this.setFontsData_.bind(this)); | 
| 170 }, | 99 }, | 
| 171 | 100 | 
| 172 /** | |
| 173 * @param {number} value The intermediate slider value. | |
| 174 * @private | |
| 175 */ | |
| 176 immediateSizeIndexChanged_: function(value) { | |
| 177 this.set('prefs.webkit.webprefs.default_font_size.value', | |
| 178 this.fontSizeRange_[this.immediateSizeIndex_]); | |
| 179 }, | |
| 180 | |
| 181 /** | |
| 182 * @param {number} value The intermediate slider value. | |
| 183 * @private | |
| 184 */ | |
| 185 immediateMinimumSizeIndexChanged_: function(value) { | |
| 186 this.set('prefs.webkit.webprefs.minimum_font_size.value', | |
| 187 this.minimumFontSizeRange_[this.immediateMinimumSizeIndex_]); | |
| 188 }, | |
| 189 | |
| 190 /** @private */ | 101 /** @private */ | 
| 191 openAdvancedExtension_: function() { | 102 openAdvancedExtension_: function() { | 
| 192 if (this.advancedExtensionInstalled_) | 103 if (this.advancedExtensionInstalled_) | 
| 193 this.browserProxy_.openAdvancedFontSettings(); | 104 this.browserProxy_.openAdvancedFontSettings(); | 
| 194 else | 105 else | 
| 195 window.open(this.advancedExtensionUrl_); | 106 window.open(this.advancedExtensionUrl_); | 
| 196 }, | 107 }, | 
| 197 | 108 | 
| 198 /** | 109 /** | 
| 199 * @param {boolean} isInstalled Whether the advanced font settings | 110 * @param {boolean} isInstalled Whether the advanced font settings | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 233 } | 144 } | 
| 234 this.$.encoding.menuOptions = encodingMenuOptions; | 145 this.$.encoding.menuOptions = encodingMenuOptions; | 
| 235 this.advancedExtensionUrl_ = response.extensionUrl; | 146 this.advancedExtensionUrl_ = response.extensionUrl; | 
| 236 }, | 147 }, | 
| 237 | 148 | 
| 238 /** | 149 /** | 
| 239 * @param {number} value The changed font size slider value. | 150 * @param {number} value The changed font size slider value. | 
| 240 * @private | 151 * @private | 
| 241 */ | 152 */ | 
| 242 fontSizeChanged_: function(value) { | 153 fontSizeChanged_: function(value) { | 
| 243 this.defaultFontSize_ = value; | 154 // TODO(dschuyler): Actually fetch this pref so setting it does something. | 
| 
 
dschuyler
2016/05/16 20:49:50
A TODO should have the name of the person who wrot
 
stevenjb
2016/05/16 21:57:51
FWIW, it's OK to put someone else's name on a TODO
 
michaelpg
2016/05/17 19:18:43
Done.
 
 | |
| 244 if (!this.$.sizeSlider.dragging) { | 155 this.set('prefs.webkit.webprefs.default_fixed_font_size.value', | 
| 245 this.fontSizeIndex_ = this.fontSizeRange_.indexOf(value); | |
| 246 this.set('prefs.webkit.webprefs.default_fixed_font_size.value', | |
| 247 value - SIZE_DIFFERENCE_FIXED_STANDARD_); | 156 value - SIZE_DIFFERENCE_FIXED_STANDARD_); | 
| 248 } | |
| 249 }, | 157 }, | 
| 250 | 158 | 
| 251 /** | 159 /** | 
| 252 * @param {number} value The changed font size slider value. | |
| 253 * @private | |
| 254 */ | |
| 255 minimumFontSizeChanged_: function(value) { | |
| 256 this.minimumFontSize_ = value; | |
| 257 if (!this.$.minimumSizeSlider.dragging) | |
| 258 this.minimumSizeIndex_ = this.minimumFontSizeRange_.indexOf(value); | |
| 259 }, | |
| 260 | |
| 261 /** | |
| 262 * Creates an html style value. | 160 * Creates an html style value. | 
| 263 * @param {number} fontSize The font size to use. | 161 * @param {number} fontSize The font size to use. | 
| 264 * @param {string} fontFamily The name of the font family use. | 162 * @param {string} fontFamily The name of the font family use. | 
| 265 * @return {string} | 163 * @return {string} | 
| 266 * @private | 164 * @private | 
| 267 */ | 165 */ | 
| 268 computeStyle_: function(fontSize, fontFamily) { | 166 computeStyle_: function(fontSize, fontFamily) { | 
| 269 return 'font-size: ' + fontSize + "px; font-family: '" + fontFamily + | 167 return 'font-size: ' + fontSize + "px; font-family: '" + fontFamily + | 
| 270 "';"; | 168 "';"; | 
| 271 }, | 169 }, | 
| 272 }); | 170 }); | 
| 273 })(); | 171 })(); | 
| OLD | NEW |