Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js b/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js |
| index f3e8102c3f24e11a95910e6f06ab9c27d83494f9..2190bc681462cd968d40def2c1b9f2cac8c57b39 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js |
| @@ -54,18 +54,17 @@ Main.RenderingOptionsView = class extends UI.VBox { |
| Common.moduleSetting('showScrollBottleneckRects')); |
| this.contentElement.createChild('div').classList.add('panel-section-separator'); |
| - var cssMediaSubtitle = Common.UIString('Forces media type for testing print and screen styles'); |
| - var checkboxLabel = UI.CheckboxLabel.create(Common.UIString('Emulate CSS Media'), false, cssMediaSubtitle); |
| - this._mediaCheckbox = checkboxLabel.checkboxElement; |
| - this._mediaCheckbox.addEventListener('click', this._mediaToggled.bind(this), false); |
| - this.contentElement.appendChild(checkboxLabel); |
| - |
| - var mediaRow = this.contentElement.createChild('div', 'media-row'); |
| - this._mediaSelect = mediaRow.createChild('select', 'chrome-select'); |
| - this._mediaSelect.appendChild(new Option(Common.UIString('print'), 'print')); |
| - this._mediaSelect.appendChild(new Option(Common.UIString('screen'), 'screen')); |
| - this._mediaSelect.addEventListener('change', this._mediaToggled.bind(this), false); |
| - this._mediaSelect.disabled = true; |
| + this._mediaSetting = Common.moduleSetting('emulateCSSMedia'); |
| + this._mediaSetting.addChangeListener(this._mediaChanged.bind(this)); |
| + var emulateMediaExtension = self.runtime.extensions('setting').find( |
| + extension => extension.descriptor()['settingName'] === 'emulateCSSMedia' && !!extension.descriptor().options); |
| + if (emulateMediaExtension) { |
| + var mediaOptions = emulateMediaExtension.descriptor().options; |
|
pfeldman
2017/05/10 20:55:19
I'm seeing the same code in SettingsScreen.js - ca
luoe
2017/05/11 21:40:02
We can do a settingExtensionToControl that holds c
|
| + var mediaSelect = UI.SettingsUI.createSettingSelect( |
| + Common.UIString('Emulate CSS Media'), mediaOptions, this._mediaSetting, |
| + Common.UIString('Forces media type for testing print and screen styles')); |
| + this.contentElement.createChild('div', 'media-row').appendChild(mediaSelect); |
| + } |
| SDK.targetManager.observeModels(SDK.EmulationModel, this); |
| } |
| @@ -86,15 +85,14 @@ Main.RenderingOptionsView = class extends UI.VBox { |
| * @param {!SDK.EmulationModel} emulationModel |
| */ |
| modelAdded(emulationModel) { |
| - if (this._mediaCheckbox.checked) |
| - emulationModel.emulateCSSMedia(this._mediaSelect.value); |
| + var mediaValue = this._mediaSetting.get() === 'none' ? null : this._mediaSetting.get(); |
| + emulationModel.emulateCSSMedia(mediaValue); |
| } |
| - _mediaToggled() { |
| - this._mediaSelect.disabled = !this._mediaCheckbox.checked; |
| - var media = this._mediaCheckbox.checked ? this._mediaSelect.value : null; |
| + _mediaChanged() { |
| + var mediaValue = this._mediaSetting.get() === 'none' ? null : this._mediaSetting.get(); |
| for (var emulationModel of SDK.targetManager.models(SDK.EmulationModel)) |
| - emulationModel.emulateCSSMedia(media); |
| + emulationModel.emulateCSSMedia(mediaValue); |
| } |
| /** |