Chromium Code Reviews| Index: Source/devtools/front_end/elements/RenderingOptionsView.js |
| diff --git a/Source/devtools/front_end/elements/RenderingOptionsView.js b/Source/devtools/front_end/elements/RenderingOptionsView.js |
| index 6f785c344897ced57b9f94843f4f0661746c1d3c..a68310a45bb76077ec91fddffcb4998682943a94 100644 |
| --- a/Source/devtools/front_end/elements/RenderingOptionsView.js |
| +++ b/Source/devtools/front_end/elements/RenderingOptionsView.js |
| @@ -31,6 +31,7 @@ |
| /** |
| * @constructor |
| * @extends {WebInspector.VBox} |
| + * @implements {WebInspector.TargetManager.Observer} |
| */ |
| WebInspector.RenderingOptionsView = function() |
| { |
| @@ -43,11 +44,66 @@ WebInspector.RenderingOptionsView = function() |
| div.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Show composited layer borders"), WebInspector.settings.showDebugBorders)); |
| div.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Show FPS meter"), WebInspector.settings.showFPSCounter)); |
| div.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Enable continuous page repainting"), WebInspector.settings.continuousPainting)); |
| - var child = WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Show potential scroll bottlenecks"), WebInspector.settings.showScrollBottleneckRects); |
| + var child = WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Show potential scroll bottlenecks"), WebInspector.settings.settings.showScrollBottleneckRects); |
|
dgozman
2014/07/14 12:16:11
Accidental change?
pfeldman
2014/07/14 12:41:20
Done.
|
| child.title = WebInspector.UIString("Shows areas of the page that slow down scrolling:\nTouch and mousewheel event listeners can delay scrolling.\nSome areas need to repaint their content when scrolled."); |
| div.appendChild(child); |
| + |
| + /** |
| + * @type {!Map.<!WebInspector.Setting, function(boolean)>} |
| + */ |
| + this._setters = new Map(); |
| + this._mapSettingToSetter(WebInspector.settings.showPaintRects, Protocol.PageAgent.prototype.setShowPaintRects); |
| + this._mapSettingToSetter(WebInspector.settings.showDebugBorders, Protocol.PageAgent.prototype.setShowDebugBorders); |
| + this._mapSettingToSetter(WebInspector.settings.showFPSCounter, Protocol.PageAgent.prototype.setShowFPSCounter); |
| + this._mapSettingToSetter(WebInspector.settings.continuousPainting, Protocol.PageAgent.prototype.setContinuousPaintingEnabled); |
| + this._mapSettingToSetter(WebInspector.settings.showScrollBottleneckRects, Protocol.PageAgent.prototype.setShowScrollBottleneckRects); |
| + |
| + WebInspector.targetManager.observeTargets(this); |
| } |
| WebInspector.RenderingOptionsView.prototype = { |
| + /** |
| + * @param {!WebInspector.Target} target |
| + */ |
| + targetAdded: function(target) |
| + { |
| + var settings = this._setters.keys(); |
| + for (var i = 0; i < settings.length; ++i) { |
| + var setting = settings[i]; |
| + if (setting.get()) { |
| + var setter = this._setters.get(setting); |
| + setter.call(target.pageAgent(), true); |
|
dgozman
2014/07/14 12:16:11
This means that settings will not be applied unles
pfeldman
2014/07/14 12:41:20
Done.
|
| + } |
| + } |
| + }, |
| + |
| + /** |
| + * @param {!WebInspector.Target} target |
| + */ |
| + targetRemoved: function(target) |
| + { |
| + }, |
| + |
| + /** |
| + * @param {!WebInspector.Setting} setting |
| + * @param {function(boolean)} setter |
| + */ |
| + _mapSettingToSetter: function(setting, setter) |
| + { |
| + this._setters.put(setting, setter); |
| + setting.addChangeListener(changeListener.bind(this)); |
| + |
| + /** |
| + * @this {WebInspector.RenderingOptionsView} |
| + */ |
| + function changeListener() |
| + { |
| + var targets = WebInspector.targetManager.targets(); |
| + var setter = this._setters.get(setting); |
| + for (var i = 0; i < targets.length; ++i) |
| + setter.call(targets[i].pageAgent(), setting.get()); |
| + } |
| + }, |
| + |
| __proto__: WebInspector.VBox.prototype |
| } |