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

Unified Diff: third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js

Issue 1581763002: Revert of [DevTools] Device Mode polish. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 e9b66f3e6efd3433921475220207fbe7d9229911..b97379f1168c717c1171d5243814edae2ac7c39b 100644
--- a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js
@@ -13,17 +13,17 @@
this._screenRect = new WebInspector.Rect(0, 0, 1, 1);
this._visiblePageRect = new WebInspector.Rect(0, 0, 1, 1);
this._availableSize = new Size(1, 1);
- this._preferredSize = new Size(1, 1);
this._deviceMetricsThrottler = new WebInspector.Throttler(0);
this._appliedDeviceSize = new Size(1, 1);
this._currentDeviceScaleFactor = window.devicePixelRatio;
this._appliedDeviceScaleFactor = 0;
+ // Zero means "fit".
this._scaleSetting = WebInspector.settings.createSetting("emulation.deviceScale", 1);
this._scaleSetting.addChangeListener(this._scaleSettingChanged, this);
this._widthSetting = WebInspector.settings.createSetting("emulation.deviceWidth", 400);
this._widthSetting.addChangeListener(this._widthSettingChanged, this);
- this._heightSetting = WebInspector.settings.createSetting("emulation.deviceHeight", 0);
+ this._heightSetting = WebInspector.settings.createSetting("emulation.deviceHeight", 700);
this._heightSetting.addChangeListener(this._heightSettingChanged, this);
this._uaSetting = WebInspector.settings.createSetting("emulation.deviceUA", WebInspector.DeviceModeModel.UA.Mobile);
this._uaSetting.addChangeListener(this._uaSettingChanged, this);
@@ -43,7 +43,7 @@
/** @type {string} */
this._screenOrientation = "";
/** @type {number} */
- this._fitScale = 1;
+ this._fixedScale = 0;
/** @type {?WebInspector.Target} */
this._target = null;
@@ -83,13 +83,11 @@
WebInspector.DeviceModeModel.prototype = {
/**
- * @param {!Size} availableSize
- * @param {!Size} preferredSize
- */
- setAvailableSize: function(availableSize, preferredSize)
- {
- this._availableSize = availableSize;
- this._preferredSize = preferredSize;
+ * @param {!Size} size
+ */
+ setAvailableSize: function(size)
+ {
+ this._availableSize = size;
this._calculateAndEmulate(false);
},
@@ -172,12 +170,15 @@
return this._scale;
},
- /**
- * @return {number}
- */
- fitScale: function()
- {
- return this._fitScale;
+ suspendScaleChanges: function()
+ {
+ ++this._fixedScale;
+ },
+
+ resumeScaleChanges: function()
+ {
+ if (!--this._fixedScale)
+ this._calculateAndEmulate(false);
},
/**
@@ -252,9 +253,9 @@
reset: function()
{
this._deviceScaleFactorSetting.set(0);
- this._scaleSetting.set(1);
+ this._scaleSetting.set(0);
this._widthSetting.set(400);
- this._heightSetting.set(0);
+ this._heightSetting.set(700);
this._uaSetting.set(WebInspector.DeviceModeModel.UA.Mobile);
},
@@ -334,7 +335,8 @@
var orientation = this._device.orientationByName(this._mode.orientation);
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);
+ var scale = this._calculateScale(screenWidth, screenHeight);
+ this._applyDeviceMetrics(new Size(screenWidth, screenHeight), this._mode.insets, scale, 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");
@@ -344,11 +346,12 @@
this._applyTouch(false, false);
this._applyScreenOrientation("");
} else if (this._type === WebInspector.DeviceModeModel.Type.Responsive) {
- var screenWidth = this._widthSetting.get() || this._preferredSize.width / (this._scaleSetting.get() || 1);
- var screenHeight = this._heightSetting.get() || this._preferredSize.height / (this._scaleSetting.get() || 1);
+ var screenWidth = this._widthSetting.get();
+ var screenHeight = this._heightSetting.get();
+ var scale = this._calculateScale(screenWidth, screenHeight);
var mobile = this._uaSetting.get() === WebInspector.DeviceModeModel.UA.Mobile;
var defaultDeviceScaleFactor = mobile ? WebInspector.DeviceModeModel._defaultMobileScaleFactor : 0;
- this._applyDeviceMetrics(new Size(screenWidth, screenHeight), new Insets(0, 0, 0, 0), this._scaleSetting.get(), this._deviceScaleFactorSetting.get() || defaultDeviceScaleFactor, mobile, resetScrollAndPageScale);
+ this._applyDeviceMetrics(new Size(screenWidth, screenHeight), new Insets(0, 0, 0, 0), scale, this._deviceScaleFactorSetting.get() || defaultDeviceScaleFactor, mobile, resetScrollAndPageScale);
this._applyUserAgent(mobile ? WebInspector.DeviceModeModel._defaultMobileUserAgent : "");
this._applyTouch(this._uaSetting.get() !== WebInspector.DeviceModeModel.UA.Desktop, mobile);
this._applyScreenOrientation(screenHeight >= screenWidth ? "portraitPrimary" : "landscapePrimary");
@@ -361,10 +364,19 @@
* @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);
- return Math.min(scale, 1);
+ _calculateScale: function(screenWidth, screenHeight)
+ {
+ var scale = this._scaleSetting.get();
+ if (!scale) {
+ if (this._fixedScale) {
+ scale = this._scale;
+ } else {
+ scale = 1;
+ while (this._availableSize.width < screenWidth * scale || this._availableSize.height < screenHeight * scale)
+ scale *= 0.8;
+ }
+ }
+ return scale;
},
/**
@@ -387,8 +399,6 @@
{
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;
var positionX = insets.left;
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698