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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js

Issue 2431823002: DevTools: device mode devices remember last used zoom (Closed)
Patch Set: rename to device-mode-test Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @param {!WebInspector.DeviceModeModel} model 6 * @param {!WebInspector.DeviceModeModel} model
7 * @param {!WebInspector.Setting} showMediaInspectorSetting 7 * @param {!WebInspector.Setting} showMediaInspectorSetting
8 * @param {!WebInspector.Setting} showRulersSetting 8 * @param {!WebInspector.Setting} showRulersSetting
9 * @constructor 9 * @constructor
10 */ 10 */
11 WebInspector.DeviceModeToolbar = function(model, showMediaInspectorSetting, show RulersSetting) 11 WebInspector.DeviceModeToolbar = function(model, showMediaInspectorSetting, show RulersSetting)
12 { 12 {
13 this._model = model; 13 this._model = model;
14 this._showMediaInspectorSetting = showMediaInspectorSetting; 14 this._showMediaInspectorSetting = showMediaInspectorSetting;
15 this._showRulersSetting = showRulersSetting; 15 this._showRulersSetting = showRulersSetting;
16 16
17 this._deviceOutlineSetting = this._model.deviceOutlineSetting(); 17 this._deviceOutlineSetting = this._model.deviceOutlineSetting();
18 this._showDeviceScaleFactorSetting = WebInspector.settings.createSetting("em ulation.showDeviceScaleFactor", false); 18 this._showDeviceScaleFactorSetting = WebInspector.settings.createSetting("em ulation.showDeviceScaleFactor", false);
19 this._showDeviceScaleFactorSetting.addChangeListener(this._updateDeviceScale FactorVisibility, this); 19 this._showDeviceScaleFactorSetting.addChangeListener(this._updateDeviceScale FactorVisibility, this);
20 20
21 this._showUserAgentTypeSetting = WebInspector.settings.createSetting("emulat ion.showUserAgentType", false); 21 this._showUserAgentTypeSetting = WebInspector.settings.createSetting("emulat ion.showUserAgentType", false);
22 this._showUserAgentTypeSetting.addChangeListener(this._updateUserAgentTypeVi sibility, this); 22 this._showUserAgentTypeSetting.addChangeListener(this._updateUserAgentTypeVi sibility, this);
23 23
24 this._showNetworkConditionsSetting = WebInspector.settings.createSetting("em ulation.showNetworkConditions", false); 24 this._showNetworkConditionsSetting = WebInspector.settings.createSetting("em ulation.showNetworkConditions", false);
25 this._showNetworkConditionsSetting.addChangeListener(this._updateNetworkCond itionsVisibility, this); 25 this._showNetworkConditionsSetting.addChangeListener(this._updateNetworkCond itionsVisibility, this);
26 26
27 /** @type {!Map<!WebInspector.EmulatedDevice, !WebInspector.EmulatedDevice.M ode>} */ 27 /** @type {!Map<!WebInspector.EmulatedDevice, !WebInspector.EmulatedDevice.M ode>} */
28 this._lastMode = new Map(); 28 this._lastMode = new Map();
29 29
30 /** @type {!Map<!WebInspector.EmulatedDevice, number>} */
31 this._lastScale = new Map();
32
30 this._element = createElementWithClass("div", "device-mode-toolbar"); 33 this._element = createElementWithClass("div", "device-mode-toolbar");
31 34
32 var leftContainer = this._element.createChild("div", "device-mode-toolbar-sp acer"); 35 var leftContainer = this._element.createChild("div", "device-mode-toolbar-sp acer");
33 leftContainer.createChild("div", "device-mode-toolbar-spacer"); 36 leftContainer.createChild("div", "device-mode-toolbar-spacer");
34 var leftToolbar = new WebInspector.Toolbar("", leftContainer); 37 var leftToolbar = new WebInspector.Toolbar("", leftContainer);
35 leftToolbar.makeWrappable(); 38 leftToolbar.makeWrappable();
36 this._fillLeftToolbar(leftToolbar); 39 this._fillLeftToolbar(leftToolbar);
37 40
38 var mainToolbar = new WebInspector.Toolbar("", this._element); 41 var mainToolbar = new WebInspector.Toolbar("", this._element);
39 mainToolbar.makeWrappable(); 42 mainToolbar.makeWrappable();
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 192
190 toolbar.appendToolbarItem(this._wrapToolbarItem(createElementWithClass(" div", "device-mode-empty-toolbar-element"))); 193 toolbar.appendToolbarItem(this._wrapToolbarItem(createElementWithClass(" div", "device-mode-empty-toolbar-element")));
191 }, 194 },
192 195
193 196
194 /** 197 /**
195 * @param {!WebInspector.ContextMenu} contextMenu 198 * @param {!WebInspector.ContextMenu} contextMenu
196 */ 199 */
197 _appendScaleMenuItems: function(contextMenu) 200 _appendScaleMenuItems: function(contextMenu)
198 { 201 {
199 var scaleSetting = this._model.scaleSetting();
200 if (this._model.type() === WebInspector.DeviceModeModel.Type.Device) { 202 if (this._model.type() === WebInspector.DeviceModeModel.Type.Device) {
201 contextMenu.appendItem(WebInspector.UIString("Fit to window (%.0f%%) ", this._model.fitScale() * 100), scaleSetting.set.bind(scaleSetting, this._mode l.fitScale()), false); 203 contextMenu.appendItem(WebInspector.UIString("Fit to window (%.0f%%) ", this._model.fitScale() * 100), this._onScaleMenuChanged.bind(this, this._mode l.fitScale()), false);
202 contextMenu.appendSeparator(); 204 contextMenu.appendSeparator();
203 } 205 }
204 appendScaleItem(WebInspector.UIString("50%"), 0.5); 206 var boundAppendScaleItem = appendScaleItem.bind(this);
205 appendScaleItem(WebInspector.UIString("75%"), 0.75); 207 boundAppendScaleItem(WebInspector.UIString("50%"), 0.5);
206 appendScaleItem(WebInspector.UIString("100%"), 1); 208 boundAppendScaleItem(WebInspector.UIString("75%"), 0.75);
207 appendScaleItem(WebInspector.UIString("125%"), 1.25); 209 boundAppendScaleItem(WebInspector.UIString("100%"), 1);
208 appendScaleItem(WebInspector.UIString("150%"), 1.5); 210 boundAppendScaleItem(WebInspector.UIString("125%"), 1.25);
211 boundAppendScaleItem(WebInspector.UIString("150%"), 1.5);
209 212
210 /** 213 /**
211 * @param {string} title 214 * @param {string} title
212 * @param {number} value 215 * @param {number} value
216 * @this {!WebInspector.DeviceModeToolbar}
213 */ 217 */
214 function appendScaleItem(title, value) 218 function appendScaleItem(title, value)
215 { 219 {
216 contextMenu.appendCheckboxItem(title, scaleSetting.set.bind(scaleSet ting, value), scaleSetting.get() === value, false); 220 contextMenu.appendCheckboxItem(title, this._onScaleMenuChanged.bind( this, value), this._model.scaleSetting().get() === value, false);
217 } 221 }
218 }, 222 },
219 223
220 /** 224 /**
225 * @param {number} value
226 */
227 _onScaleMenuChanged: function(value)
228 {
229 var device = this._model.device();
230 if (device)
231 this._lastScale.set(device, value);
232 this._model.scaleSetting().set(value);
233 },
234
235 /**
221 * @param {!WebInspector.ContextMenu} contextMenu 236 * @param {!WebInspector.ContextMenu} contextMenu
222 */ 237 */
223 _appendDeviceScaleMenuItems: function(contextMenu) 238 _appendDeviceScaleMenuItems: function(contextMenu)
224 { 239 {
225 var deviceScaleFactorSetting = this._model.deviceScaleFactorSetting(); 240 var deviceScaleFactorSetting = this._model.deviceScaleFactorSetting();
226 var defaultValue = this._model.uaSetting().get() === WebInspector.Device ModeModel.UA.Mobile || this._model.uaSetting().get() === WebInspector.DeviceMode Model.UA.MobileNoTouch ? WebInspector.DeviceModeModel.defaultMobileScaleFactor : window.devicePixelRatio; 241 var defaultValue = this._model.uaSetting().get() === WebInspector.Device ModeModel.UA.Mobile || this._model.uaSetting().get() === WebInspector.DeviceMode Model.UA.MobileNoTouch ? WebInspector.DeviceModeModel.defaultMobileScaleFactor : window.devicePixelRatio;
227 appendDeviceScaleFactorItem(WebInspector.UIString("Default: %.1f", defau ltValue), 0); 242 appendDeviceScaleFactorItem(WebInspector.UIString("Default: %.1f", defau ltValue), 0);
228 contextMenu.appendSeparator(); 243 contextMenu.appendSeparator();
229 appendDeviceScaleFactorItem(WebInspector.UIString("1"), 1); 244 appendDeviceScaleFactorItem(WebInspector.UIString("1"), 1);
230 appendDeviceScaleFactorItem(WebInspector.UIString("2"), 2); 245 appendDeviceScaleFactorItem(WebInspector.UIString("2"), 2);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 var shadowRoot = WebInspector.createShadowRootWithCoreStyles(container, "emulation/deviceModeToolbar.css"); 329 var shadowRoot = WebInspector.createShadowRootWithCoreStyles(container, "emulation/deviceModeToolbar.css");
315 shadowRoot.appendChild(element); 330 shadowRoot.appendChild(element);
316 return new WebInspector.ToolbarItem(container); 331 return new WebInspector.ToolbarItem(container);
317 }, 332 },
318 333
319 /** 334 /**
320 * @param {!WebInspector.EmulatedDevice} device 335 * @param {!WebInspector.EmulatedDevice} device
321 */ 336 */
322 _emulateDevice: function(device) 337 _emulateDevice: function(device)
323 { 338 {
324 this._model.emulate(WebInspector.DeviceModeModel.Type.Device, device, th is._lastMode.get(device) || device.modes[0]); 339 this._model.emulate(WebInspector.DeviceModeModel.Type.Device, device, th is._lastMode.get(device) || device.modes[0], this._lastScale.get(device));
325 }, 340 },
326 341
327 _switchToResponsive: function() 342 _switchToResponsive: function()
328 { 343 {
329 this._model.emulate(WebInspector.DeviceModeModel.Type.Responsive, null, null); 344 this._model.emulate(WebInspector.DeviceModeModel.Type.Responsive, null, null);
330 }, 345 },
331 346
332 /** 347 /**
333 * @param {!Array<!WebInspector.EmulatedDevice>} devices 348 * @param {!Array<!WebInspector.EmulatedDevice>} devices
334 * @return {!Array<!WebInspector.EmulatedDevice>} 349 * @return {!Array<!WebInspector.EmulatedDevice>}
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 this._emulateDevice(device); 580 this._emulateDevice(device);
566 return; 581 return;
567 } 582 }
568 } 583 }
569 } 584 }
570 } 585 }
571 586
572 this._model.emulate(WebInspector.DeviceModeModel.Type.Responsive, null, null); 587 this._model.emulate(WebInspector.DeviceModeModel.Type.Responsive, null, null);
573 } 588 }
574 } 589 }
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeModel.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698