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); |
} |