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 8613deca5f52f392c6529fb223993d88717dfe82..5b60953e5bfd51f18309ddf2ab05496c6f61b83a 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js |
| @@ -36,35 +36,22 @@ Main.RenderingOptionsView = class extends UI.VBox { |
| super(true); |
| this.registerRequiredCSS('main/renderingOptions.css'); |
| - /** @type {!Map.<string, !Element>} */ |
| - this._settings = new Map(); |
| - |
| - var options = [ |
| - { |
| - label: Common.UIString('Paint Flashing'), |
| - subtitle: Common.UIString('Highlights areas of the page (green) that need to be repainted'), |
| - setterName: 'setShowPaintRects' |
| - }, |
| - { |
| - label: Common.UIString('Layer Borders'), |
| - subtitle: Common.UIString('Shows layer borders (orange/olive) and tiles (cyan)'), |
| - setterName: 'setShowDebugBorders' |
| - }, |
| - { |
| - label: Common.UIString('FPS Meter'), |
| - subtitle: Common.UIString('Plots frames per second, frame rate distribution, and GPU memory'), |
| - setterName: 'setShowFPSCounter' |
| - }, |
| - { |
| - label: Common.UIString('Scrolling Performance Issues'), |
| - subtitle: Common.UIString( |
| + this._appendCheckbox( |
| + Common.UIString('Paint Flashing'), |
| + Common.UIString('Highlights areas of the page (green) that need to be repainted'), |
| + this._setShowPaintRects.bind(this)); |
| + this._appendCheckbox( |
| + Common.UIString('Layer Borders'), Common.UIString('Shows layer borders (orange/olive) and tiles (cyan)'), |
| + this._setShowDebugBorders.bind(this)); |
| + this._appendCheckbox( |
| + Common.UIString('FPS Meter'), |
| + Common.UIString('Plots frames per second, frame rate distribution, and GPU memory'), |
| + this._setShowFPSCounter.bind(this)); |
| + this._appendCheckbox( |
| + Common.UIString('Scrolling Performance Issues'), |
| + Common.UIString( |
| 'Highlights elements (teal) that can slow down scrolling, including touch & wheel event handlers and other main-thread scrolling situations.'), |
| - setterName: 'setShowScrollBottleneckRects' |
| - } |
| - ]; |
| - for (var i = 0; i < options.length; i++) |
| - this._appendCheckbox(options[i].label, options[i].setterName, options[i].subtitle); |
| - |
| + this._setShowScrollBottleneckRects.bind(this)); |
| this.contentElement.createChild('div').classList.add('panel-section-separator'); |
| var cssMediaSubtitle = Common.UIString('Forces media type for testing print and screen styles'); |
| @@ -80,7 +67,7 @@ Main.RenderingOptionsView = class extends UI.VBox { |
| this._mediaSelect.addEventListener('change', this._mediaToggled.bind(this), false); |
| this._mediaSelect.disabled = true; |
| - SDK.targetManager.observeTargets(this, SDK.Target.Capability.Browser); |
| + SDK.targetManager.observeTargets(this); |
| } |
| /** |
| @@ -94,23 +81,49 @@ Main.RenderingOptionsView = class extends UI.VBox { |
| /** |
| * @param {string} label |
| - * @param {string} setterName |
| - * @param {string=} subtitle |
| + * @param {string} subtitle |
| + * @param {function(boolean)} callback |
| */ |
| - _appendCheckbox(label, setterName, subtitle) { |
| + _appendCheckbox(label, subtitle, callback) { |
| var checkboxLabel = UI.CheckboxLabel.create(label, false, subtitle); |
| - this._settings.set(setterName, checkboxLabel.checkboxElement); |
| - checkboxLabel.checkboxElement.addEventListener('click', this._settingToggled.bind(this, setterName)); |
| + checkboxLabel.checkboxElement.addEventListener('click', () => callback(checkboxLabel.checkboxElement.checked)); |
| this.contentElement.appendChild(checkboxLabel); |
| } |
| /** |
| - * @param {string} setterName |
| + * @param {boolean} show |
| + */ |
| + _setShowPaintRects(show) { |
| + this._showPaintRects = show; |
| + for (var overlayModel of SDK.targetManager.models(SDK.OverlayModel)) |
| + overlayModel.setShowPaintRects(show); |
| + } |
| + |
| + /** |
| + * @param {boolean} show |
| + */ |
| + _setShowDebugBorders(show) { |
| + this._showDebugBorders = show; |
| + for (var overlayModel of SDK.targetManager.models(SDK.OverlayModel)) |
| + overlayModel.setShowDebugBorders(show); |
| + } |
| + |
| + /** |
| + * @param {boolean} show |
| + */ |
| + _setShowFPSCounter(show) { |
| + this._showFPSCounter = show; |
| + for (var overlayModel of SDK.targetManager.models(SDK.OverlayModel)) |
| + overlayModel.setShowFPSCounter(show); |
| + } |
| + |
| + /** |
| + * @param {boolean} show |
| */ |
| - _settingToggled(setterName) { |
| - var enabled = this._settings.get(setterName).checked; |
| - for (var target of SDK.targetManager.targets(SDK.Target.Capability.Browser)) |
| - target.renderingAgent()[setterName](enabled); |
| + _setShowScrollBottleneckRects(show) { |
| + this._showScrollBottleneckRects = show; |
| + for (var overlayModel of SDK.targetManager.models(SDK.OverlayModel)) |
| + overlayModel.setShowScrollBottleneckRects(show); |
| } |
| /** |
| @@ -118,11 +131,18 @@ Main.RenderingOptionsView = class extends UI.VBox { |
| * @param {!SDK.Target} target |
| */ |
| targetAdded(target) { |
| - for (var setterName of this._settings.keysArray()) { |
| - if (this._settings.get(setterName).checked) |
| - target.renderingAgent()[setterName](true); |
| + var overlayModel = target.model(SDK.OverlayModel); |
| + if (overlayModel) { |
| + if (this._showPaintRects) |
|
pfeldman
2017/04/18 00:25:08
Follow up with transient setting?
dgozman
2017/04/18 20:39:32
Done.
|
| + overlayModel.setShowPaintRects(true); |
| + if (this._showDebugBorders) |
| + overlayModel.setShowDebugBorders(true); |
| + if (this._showFPSCounter) |
| + overlayModel.setShowFPSCounter(true); |
| + if (this._showScrollBottleneckRects) |
| + overlayModel.setShowScrollBottleneckRects(true); |
| } |
| - if (this._mediaCheckbox.checked) |
| + if (this._mediaCheckbox.checked && target.hasBrowserCapability()) |
| this._applyPrintMediaOverride(target); |
| } |