Chromium Code Reviews| Index: Source/devtools/front_end/main/RenderingOptions.js |
| diff --git a/Source/devtools/front_end/elements/RenderingOptionsView.js b/Source/devtools/front_end/main/RenderingOptions.js |
| similarity index 60% |
| rename from Source/devtools/front_end/elements/RenderingOptionsView.js |
| rename to Source/devtools/front_end/main/RenderingOptions.js |
| index 6f785c344897ced57b9f94843f4f0661746c1d3c..5fd04befd96ae92454dce00d753b4133acd5b0a7 100644 |
| --- a/Source/devtools/front_end/elements/RenderingOptionsView.js |
| +++ b/Source/devtools/front_end/main/RenderingOptions.js |
| @@ -30,9 +30,69 @@ |
| /** |
| * @constructor |
| + * @implements {WebInspector.TargetManager.Observer} |
| + */ |
| +WebInspector.RenderingOptions = function() |
| +{ |
| + /** |
| + * @type {!Map.<!WebInspector.Setting, string>} |
| + */ |
| + this._setterNames = new Map(); |
| + this._mapSettingToSetter(WebInspector.settings.showPaintRects, "setShowPaintRects"); |
|
caseq
2014/07/14 12:47:09
It's quite unfortunate to loose types here. Why do
|
| + this._mapSettingToSetter(WebInspector.settings.showDebugBorders, "setShowDebugBorders"); |
| + this._mapSettingToSetter(WebInspector.settings.showFPSCounter, "setShowFPSCounter"); |
| + this._mapSettingToSetter(WebInspector.settings.continuousPainting, "setContinuousPaintingEnabled"); |
| + this._mapSettingToSetter(WebInspector.settings.showScrollBottleneckRects, "setShowScrollBottleneckRects"); |
| + |
| + WebInspector.targetManager.observeTargets(this); |
| +} |
| + |
| +WebInspector.RenderingOptions.prototype = { |
| + /** |
| + * @param {!WebInspector.Target} target |
| + */ |
| + targetAdded: function(target) |
| + { |
| + var settings = this._setterNames.keys(); |
| + for (var i = 0; i < settings.length; ++i) { |
| + var setting = settings[i]; |
| + if (setting.get()) { |
| + var setterName = this._setterNames.get(setting); |
| + target.pageAgent()[setterName](true); |
| + } |
| + } |
| + }, |
| + |
| + /** |
| + * @param {!WebInspector.Target} target |
| + */ |
| + targetRemoved: function(target) |
| + { |
| + }, |
| + |
| + /** |
| + * @param {!WebInspector.Setting} setting |
| + * @param {string} setterName |
| + */ |
| + _mapSettingToSetter: function(setting, setterName) |
| + { |
| + this._setterNames.put(setting, setterName); |
| + setting.addChangeListener(changeListener); |
| + |
| + function changeListener() |
| + { |
| + var targets = WebInspector.targetManager.targets(); |
| + for (var i = 0; i < targets.length; ++i) |
| + targets[i].pageAgent()[setterName](setting.get()); |
| + } |
| + } |
| +} |
| + |
| +/** |
| + * @constructor |
| * @extends {WebInspector.VBox} |
| */ |
| -WebInspector.RenderingOptionsView = function() |
| +WebInspector.RenderingOptions.View = function() |
| { |
| WebInspector.VBox.call(this); |
| this.registerRequiredCSS("helpScreen.css"); |
| @@ -48,6 +108,6 @@ WebInspector.RenderingOptionsView = function() |
| div.appendChild(child); |
| } |
| -WebInspector.RenderingOptionsView.prototype = { |
| +WebInspector.RenderingOptions.View.prototype = { |
| __proto__: WebInspector.VBox.prototype |
| } |