Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1862)

Unified Diff: Source/devtools/front_end/elements/RenderingOptionsView.js

Issue 385173007: DevTools: move UI components to target observers in preparation to early UI initialization. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
}

Powered by Google App Engine
This is Rietveld 408576698