Index: third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js |
index 1bcee52441e818f910c02f03fa06513b844628df..e9b66f3e6efd3433921475220207fbe7d9229911 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js |
+++ b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js |
@@ -47,8 +47,6 @@ |
/** @type {?WebInspector.Target} */ |
this._target = null; |
- /** @type {?function()} */ |
- this._onTargetAvailable = null; |
WebInspector.targetManager.observeTargets(this, WebInspector.Target.Type.Page); |
} |
@@ -102,7 +100,6 @@ |
*/ |
emulate: function(type, device, mode) |
{ |
- var resetScrollAndPageScale = this._type !== type || this._device !== device || this._mode !== mode; |
this._type = type; |
if (type === WebInspector.DeviceModeModel.Type.Device) { |
@@ -116,7 +113,7 @@ |
if (type !== WebInspector.DeviceModeModel.Type.None) |
WebInspector.userMetrics.actionTaken(WebInspector.UserMetrics.Action.DeviceModeEnabled); |
- this._calculateAndEmulate(resetScrollAndPageScale); |
+ this._calculateAndEmulate(true); |
}, |
/** |
@@ -271,11 +268,6 @@ |
this._target = target; |
var domModel = WebInspector.DOMModel.fromTarget(this._target); |
domModel.addEventListener(WebInspector.DOMModel.Events.InspectModeWillBeToggled, this._inspectModeWillBeToggled, this); |
- if (this._onTargetAvailable) { |
- var callback = this._onTargetAvailable; |
- this._onTargetAvailable = null; |
- callback(); |
- } |
} |
}, |
@@ -338,20 +330,15 @@ |
*/ |
_calculateAndEmulate: function(resetScrollAndPageScale) |
{ |
- if (!this._target) { |
- this._onTargetAvailable = this._calculateAndEmulate.bind(this, resetScrollAndPageScale); |
- return; |
- } |
- |
if (this._type === WebInspector.DeviceModeModel.Type.Device) { |
var orientation = this._device.orientationByName(this._mode.orientation); |
- this._calculateFitScale(orientation.width, orientation.height); |
- this._applyDeviceMetrics(new Size(orientation.width, orientation.height), this._mode.insets, this._scaleSetting.get(), this._device.deviceScaleFactor, this._device.mobile(), resetScrollAndPageScale); |
+ var screenWidth = orientation.width; |
+ var screenHeight = orientation.height; |
+ this._applyDeviceMetrics(new Size(screenWidth, screenHeight), this._mode.insets, this._scaleSetting.get(), this._device.deviceScaleFactor, this._device.mobile(), resetScrollAndPageScale); |
this._applyUserAgent(this._device.userAgent); |
this._applyTouch(this._device.touch(), this._device.mobile()); |
this._applyScreenOrientation(this._mode.orientation == WebInspector.EmulatedDevice.Horizontal ? "landscapePrimary" : "portraitPrimary"); |
} else if (this._type === WebInspector.DeviceModeModel.Type.None) { |
- this._calculateFitScale(this._availableSize.width, this._availableSize.height); |
this._applyDeviceMetrics(this._availableSize, new Insets(0, 0, 0, 0), 1, 0, false, resetScrollAndPageScale); |
this._applyUserAgent(""); |
this._applyTouch(false, false); |
@@ -361,7 +348,6 @@ |
var screenHeight = this._heightSetting.get() || this._preferredSize.height / (this._scaleSetting.get() || 1); |
var mobile = this._uaSetting.get() === WebInspector.DeviceModeModel.UA.Mobile; |
var defaultDeviceScaleFactor = mobile ? WebInspector.DeviceModeModel._defaultMobileScaleFactor : 0; |
- this._calculateFitScale(this._widthSetting.get(), this._heightSetting.get()); |
this._applyDeviceMetrics(new Size(screenWidth, screenHeight), new Insets(0, 0, 0, 0), this._scaleSetting.get(), this._deviceScaleFactorSetting.get() || defaultDeviceScaleFactor, mobile, resetScrollAndPageScale); |
this._applyUserAgent(mobile ? WebInspector.DeviceModeModel._defaultMobileUserAgent : ""); |
this._applyTouch(this._uaSetting.get() !== WebInspector.DeviceModeModel.UA.Desktop, mobile); |
@@ -373,11 +359,12 @@ |
/** |
* @param {number} screenWidth |
* @param {number} screenHeight |
+ * @return {number} |
*/ |
_calculateFitScale: function(screenWidth, screenHeight) |
{ |
var scale = Math.min(screenWidth ? this._preferredSize.width / screenWidth: 1, screenHeight ? this._preferredSize.height / screenHeight : 1); |
- this._fitScale = Math.min(scale, 1); |
+ return Math.min(scale, 1); |
}, |
/** |
@@ -400,6 +387,7 @@ |
{ |
screenSize.width = Math.max(1, Math.floor(screenSize.width)); |
screenSize.height = Math.max(1, Math.floor(screenSize.height)); |
+ this._fitScale = this._calculateFitScale(screenSize.width, screenSize.height); |
var pageWidth = screenSize.width - insets.left - insets.right; |
var pageHeight = screenSize.height - insets.top - insets.bottom; |