Index: Source/devtools/front_end/OverridesSupport.js |
diff --git a/Source/devtools/front_end/OverridesSupport.js b/Source/devtools/front_end/OverridesSupport.js |
index b4f5c643f3b61e36a99d54e531a36c10e6c37e0a..a6523f47c0409cca66541e023c02a25154eb4c26 100644 |
--- a/Source/devtools/front_end/OverridesSupport.js |
+++ b/Source/devtools/front_end/OverridesSupport.js |
@@ -29,11 +29,13 @@ |
*/ |
/** |
+ * @extends {WebInspector.Object} |
pfeldman
2013/10/31 17:45:31
We define @extends below @constructor
dgozman
2013/10/31 17:57:48
Done.
|
* @constructor |
*/ |
WebInspector.OverridesSupport = function() |
{ |
- this._updateAllOverrides(); |
+ this._canForceCompositingMode = true; |
+ WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this.updateCanForceCompositingMode.bind(this), this); |
WebInspector.settings.overrideUserAgent.addChangeListener(this._userAgentChanged, this); |
WebInspector.settings.userAgent.addChangeListener(this._userAgentChanged, this); |
@@ -54,6 +56,10 @@ WebInspector.OverridesSupport = function() |
WebInspector.settings.emulatedCSSMedia.addChangeListener(this._cssMediaChanged, this); |
} |
+WebInspector.OverridesSupport.Events = { |
+ CanForceCompositingModeChanged: "CanForceCompositingModeChanged", |
+} |
+ |
/** |
* @constructor |
* @param {number} width |
@@ -400,7 +406,8 @@ WebInspector.OverridesSupport.prototype = { |
{ |
WebInspector.settings.deviceMetrics.set(deviceMetrics); |
WebInspector.settings.userAgent.set(userAgent); |
- WebInspector.settings.overrideDeviceMetrics.set(true); |
+ if (this._canForceCompositingMode) |
+ WebInspector.settings.overrideDeviceMetrics.set(true); |
WebInspector.settings.overrideUserAgent.set(true); |
WebInspector.settings.emulateTouchEvents.set(true); |
}, |
@@ -415,10 +422,13 @@ WebInspector.OverridesSupport.prototype = { |
WebInspector.settings.overrideCSSMedia.set(false); |
}, |
- _updateAllOverrides: function() |
+ applyInitialOverrides: function() |
{ |
this._userAgentChanged(); |
- this._deviceMetricsChanged(); |
+ if (WebInspector.settings.overrideDeviceMetrics.get()) |
+ this.updateCanForceCompositingMode(this._deviceMetricsChanged.bind(this)); |
+ else |
+ this._deviceMetricsChanged(); |
this._deviceOrientationChanged(); |
this._geolocationPositionChanged(); |
this._emulateTouchEventsChanged(); |
@@ -488,7 +498,33 @@ WebInspector.OverridesSupport.prototype = { |
WebInspector.settings.showEmulationViewInDrawer.set(true); |
WebInspector.inspectorView.showViewInDrawer("emulation"); |
} |
- } |
+ }, |
+ |
+ updateCanForceCompositingMode: function(callback) |
+ { |
+ function apiCallback(error, result) |
+ { |
+ if (!error) { |
+ if (!result && WebInspector.settings.overrideDeviceMetrics.get()) |
+ WebInspector.settings.overrideDeviceMetrics.set(false); |
+ |
+ if (this._canForceCompositingMode !== result) { |
+ this._canForceCompositingMode = result; |
+ this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.CanForceCompositingModeChanged); |
+ } |
+ } |
+ if (callback) |
+ callback(); |
+ } |
+ PageAgent.canForceCompositingMode(apiCallback.bind(this)); |
+ }, |
+ |
+ canForceCompositingMode: function() |
+ { |
+ return this._canForceCompositingMode; |
+ }, |
+ |
+ __proto__: WebInspector.Object.prototype |
} |