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

Side by Side Diff: Source/devtools/front_end/elements/OverridesView.js

Issue 304693002: DevTools: get rid of deviceMetics settings. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Tests fixed. Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/devtools/front_end/common/Settings.js ('k') | Source/devtools/front_end/main/Main.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2014 Google Inc. All rights reserved. 2 * Copyright (C) 2014 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 /** 150 /**
151 * @constructor 151 * @constructor
152 * @extends {WebInspector.OverridesView.Tab} 152 * @extends {WebInspector.OverridesView.Tab}
153 */ 153 */
154 WebInspector.OverridesView.DeviceTab = function() 154 WebInspector.OverridesView.DeviceTab = function()
155 { 155 {
156 WebInspector.OverridesView.Tab.call(this, "device", WebInspector.UIString("D evice"), []); 156 WebInspector.OverridesView.Tab.call(this, "device", WebInspector.UIString("D evice"), []);
157 this.element.classList.add("overrides-device"); 157 this.element.classList.add("overrides-device");
158 158
159 this._emulatedDeviceSetting = WebInspector.settings.createSetting("emulatedD evice", "Google Nexus 4"); 159 this._emulatedDeviceSetting = WebInspector.settings.createSetting("emulatedD evice", "Google Nexus 4");
160 this._emulateDeviceViewportSetting = WebInspector.overridesSupport.settings. overrideDeviceMetrics;
161 this._emulateDeviceUserAgentSetting = WebInspector.overridesSupport.settings .overrideUserAgent;
162 160
163 this._deviceSelectElement = this.element.createChild("select"); 161 this._deviceSelectElement = this.element.createChild("select");
164 162
165 var devices = WebInspector.OverridesView.DeviceTab._phones.concat(WebInspect or.OverridesView.DeviceTab._tablets); 163 var devices = WebInspector.OverridesView.DeviceTab._phones.concat(WebInspect or.OverridesView.DeviceTab._tablets);
166 devices.sort(); 164 devices.sort();
167 var selectionRestored = false; 165 var selectionRestored = false;
168 for (var i = 0; i < devices.length; ++i) { 166 for (var i = 0; i < devices.length; ++i) {
169 var device = devices[i]; 167 var device = devices[i];
170 var option = new Option(device[0], device[0]); 168 var option = new Option(device[0], device[0]);
171 option._userAgent = device[1]; 169 option._userAgent = device[1];
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 203
206 this._updateValueLabels(); 204 this._updateValueLabels();
207 WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSupport .Events.HasActiveOverridesChanged, this._hasActiveOverridesChanged, this); 205 WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSupport .Events.HasActiveOverridesChanged, this._hasActiveOverridesChanged, this);
208 this._hasActiveOverridesChanged(); 206 this._hasActiveOverridesChanged();
209 } 207 }
210 208
211 // Third element lists device metrics separated by 'x': 209 // Third element lists device metrics separated by 'x':
212 // - screen width, 210 // - screen width,
213 // - screen height, 211 // - screen height,
214 // - device scale factor, 212 // - device scale factor,
215 // - use text autosizing.
216 WebInspector.OverridesView.DeviceTab._phones = [ 213 WebInspector.OverridesView.DeviceTab._phones = [
217 ["Apple iPhone 3GS", 214 ["Apple iPhone 3GS",
218 "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWeb Kit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5", 215 "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWeb Kit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5",
219 "320x480x1"], 216 "320x480x1"],
220 ["Apple iPhone 4", 217 ["Apple iPhone 4",
221 "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWeb Kit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5", 218 "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWeb Kit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5",
222 "320x480x2"], 219 "320x480x2"],
223 ["Apple iPhone 5", 220 ["Apple iPhone 5",
224 "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/5 37.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53", 221 "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/5 37.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
225 "320x568x2"], 222 "320x568x2"],
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 __proto__: WebInspector.OverridesView.Tab.prototype 386 __proto__: WebInspector.OverridesView.Tab.prototype
390 } 387 }
391 388
392 389
393 /** 390 /**
394 * @constructor 391 * @constructor
395 * @extends {WebInspector.OverridesView.Tab} 392 * @extends {WebInspector.OverridesView.Tab}
396 */ 393 */
397 WebInspector.OverridesView.ViewportTab = function() 394 WebInspector.OverridesView.ViewportTab = function()
398 { 395 {
399 WebInspector.OverridesView.Tab.call(this, "viewport", WebInspector.UIString( "Screen"), [WebInspector.overridesSupport.settings.overrideDeviceMetrics, WebIns pector.overridesSupport.settings.overrideCSSMedia]); 396 WebInspector.OverridesView.Tab.call(this, "viewport", WebInspector.UIString( "Screen"), [WebInspector.overridesSupport.settings.overrideDeviceResolution, Web Inspector.overridesSupport.settings.emulateViewport, WebInspector.overridesSuppo rt.settings.overrideCSSMedia]);
400 this.element.classList.add("overrides-viewport"); 397 this.element.classList.add("overrides-viewport");
401 398
402 const metricsSetting = WebInspector.overridesSupport.settings.deviceMetrics. get(); 399 this._createDeviceMetricsElement();
403 var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(metri csSetting); 400 var checkbox = this._createSettingCheckbox(WebInspector.UIString("Emulate vi ewport"), WebInspector.overridesSupport.settings.emulateViewport);
404 var checkbox = this._createSettingCheckbox(WebInspector.UIString("Emulate sc reen"), WebInspector.overridesSupport.settings.overrideDeviceMetrics, this._onMe tricsCheckboxClicked.bind(this));
405 checkbox.firstChild.disabled = WebInspector.overridesSupport.isInspectingDev ice();
406 WebInspector.overridesSupport.settings.deviceMetrics.addChangeListener(this. _updateDeviceMetricsElement, this);
407
408 this.element.appendChild(checkbox); 401 this.element.appendChild(checkbox);
409 this.element.appendChild(this._createDeviceMetricsElement(metrics)); 402 this._createMediaEmulationFragment();
410 this.element.appendChild(this._createMediaEmulationFragment());
411 403
412 var footnote = this.element.createChild("p", "help-footnote"); 404 var footnote = this.element.createChild("p", "help-footnote");
413 var footnoteLink = footnote.createChild("a"); 405 var footnoteLink = footnote.createChild("a");
414 footnoteLink.href = "https://developers.google.com/chrome-developer-tools/do cs/mobile-emulation"; 406 footnoteLink.href = "https://developers.google.com/chrome-developer-tools/do cs/mobile-emulation";
415 footnoteLink.target = "_blank"; 407 footnoteLink.target = "_blank";
416 footnoteLink.createTextChild(WebInspector.UIString("More information about s creen emulation")); 408 footnoteLink.createTextChild(WebInspector.UIString("More information about s creen emulation"));
417
418 this._onMetricsCheckboxClicked(WebInspector.overridesSupport.settings.overri deDeviceMetrics.get());
419 } 409 }
420 410
421 WebInspector.OverridesView.ViewportTab.prototype = { 411 WebInspector.OverridesView.ViewportTab.prototype = {
422 /** 412 _createDeviceMetricsElement: function()
423 * @param {boolean} enabled
424 */
425 _onMetricsCheckboxClicked: function(enabled)
426 { 413 {
427 if (enabled && !this._widthOverrideElement.value) 414 var checkbox = this._createSettingCheckbox(WebInspector.UIString("Emulat e resolution"), WebInspector.overridesSupport.settings.overrideDeviceResolution) ;
428 this._widthOverrideElement.focus(); 415 checkbox.firstChild.disabled = WebInspector.overridesSupport.isInspectin gDevice();
429 this._applyDeviceMetricsUserInput(); 416 this.element.appendChild(checkbox);
430 },
431 417
432 _applyDeviceMetricsUserInput: function() 418 var fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebI nspector.overridesSupport.settings.overrideDeviceResolution);
433 {
434 this._muteRangeListener = true;
435 this._widthRangeInput.value = this._widthOverrideElement.value;
436 delete this._muteRangeListener;
437 WebInspector.OverridesSupport.DeviceMetrics.applyOverrides(this._widthOv errideElement, this._heightOverrideElement, this._deviceScaleFactorOverrideEleme nt, this._textAutosizingOverrideCheckbox);
438 },
439
440 /**
441 * @param {!WebInspector.OverridesSupport.DeviceMetrics} metrics
442 */
443 _createDeviceMetricsElement: function(metrics)
444 {
445 var fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebI nspector.overridesSupport.settings.overrideDeviceMetrics);
446 if (WebInspector.overridesSupport.isInspectingDevice()) 419 if (WebInspector.overridesSupport.isInspectingDevice())
447 fieldsetElement.disabled = true; 420 fieldsetElement.disabled = true;
448 fieldsetElement.id = "metrics-override-section"; 421 fieldsetElement.id = "metrics-override-section";
449 422
450 /**
451 * @this {WebInspector.OverridesView.ViewportTab}
452 */
453 function swapDimensionsClicked()
454 {
455 var widthValue = this._widthOverrideElement.value;
456 this._widthOverrideElement.value = this._heightOverrideElement.value ;
457 this._heightOverrideElement.value = widthValue;
458 this._applyDeviceMetricsUserInput();
459 }
460
461 var tableElement = fieldsetElement.createChild("table", "nowrap"); 423 var tableElement = fieldsetElement.createChild("table", "nowrap");
462 424
463 var rowElement = tableElement.createChild("tr"); 425 var rowElement = tableElement.createChild("tr");
464 var cellElement = rowElement.createChild("td"); 426 var cellElement = rowElement.createChild("td");
465 cellElement.appendChild(document.createTextNode(WebInspector.UIString("R esolution:"))); 427 cellElement.appendChild(document.createTextNode(WebInspector.UIString("R esolution:")));
466 cellElement = rowElement.createChild("td"); 428 cellElement = rowElement.createChild("td");
467 this._widthOverrideElement = WebInspector.SettingsUI.createInput(cellEle ment, "metrics-override-width", String(metrics.width), this._applyDeviceMetricsU serInput.bind(this), true); 429
430 var widthOverrideInput = WebInspector.SettingsUI.createSettingInputField ("", WebInspector.overridesSupport.settings.deviceWidth, true, 4, "80px", WebIns pector.OverridesSupport.inputValidator, true);
431 cellElement.appendChild(widthOverrideInput);
468 this._swapDimensionsElement = cellElement.createChild("button", "overrid es-swap"); 432 this._swapDimensionsElement = cellElement.createChild("button", "overrid es-swap");
469 this._swapDimensionsElement.appendChild(document.createTextNode(" \u21C4 ")); // RIGHTWARDS ARROW OVER LEFTWARDS ARROW. 433 this._swapDimensionsElement.appendChild(document.createTextNode(" \u21C4 ")); // RIGHTWARDS ARROW OVER LEFTWARDS ARROW.
470 this._swapDimensionsElement.title = WebInspector.UIString("Swap dimensio ns"); 434 this._swapDimensionsElement.title = WebInspector.UIString("Swap dimensio ns");
471 this._swapDimensionsElement.addEventListener("click", swapDimensionsClic ked.bind(this), false); 435 this._swapDimensionsElement.addEventListener("click", WebInspector.overr idesSupport.swapDimensions.bind(WebInspector.overridesSupport), false);
472 this._swapDimensionsElement.tabIndex = -1; 436 this._swapDimensionsElement.tabIndex = -1;
473 this._heightOverrideElement = WebInspector.SettingsUI.createInput(cellEl ement, "metrics-override-height", String(metrics.height), this._applyDeviceMetri csUserInput.bind(this), true); 437 var heightOverrideInput = WebInspector.SettingsUI.createSettingInputFiel d("", WebInspector.overridesSupport.settings.deviceHeight, true, 4, "80px", WebI nspector.OverridesSupport.inputValidator, true);
438 cellElement.appendChild(heightOverrideInput);
474 439
475 if (!WebInspector.OverridesView.isResponsiveDesignEnabled()) { 440 if (!WebInspector.OverridesView.isResponsiveDesignEnabled()) {
476 rowElement = tableElement.createChild("tr"); 441 rowElement = tableElement.createChild("tr");
477 cellElement = rowElement.createChild("td"); 442 cellElement = rowElement.createChild("td");
478 cellElement.colSpan = 4; 443 cellElement.colSpan = 4;
479 this._widthRangeInput = cellElement.createChild("input"); 444
480 this._widthRangeInput.type = "range"; 445 var widthRangeInput = WebInspector.SettingsUI.createSettingInputFiel d("", WebInspector.overridesSupport.settings.deviceWidth, true, 4, "200px", unde fined, true);
481 this._widthRangeInput.min = 100; 446 widthRangeInput.type = "range";
482 this._widthRangeInput.max = 2000; 447 widthRangeInput.min = 100;
483 this._widthRangeInput.addEventListener("change", this._rangeValueCha nged.bind(this), false); 448 widthRangeInput.max = 2000;
484 this._widthRangeInput.addEventListener("input", this._rangeValueChan ged.bind(this), false); 449 cellElement.appendChild(widthRangeInput);
485 this._widthRangeInput.value = this._widthOverrideElement.value;
486 } else {
487 this._widthRangeInput = document.createElement("input");
488 } 450 }
489 451
490 rowElement = tableElement.createChild("tr"); 452 rowElement = tableElement.createChild("tr");
491 rowElement.title = WebInspector.UIString("Ratio between a device's physi cal pixels and device-independent pixels."); 453 rowElement.title = WebInspector.UIString("Ratio between a device's physi cal pixels and device-independent pixels.");
492 cellElement = rowElement.createChild("td"); 454 rowElement.createChild("td").appendChild(document.createTextNode(WebInsp ector.UIString("Device pixel ratio:")));
493 cellElement.appendChild(document.createTextNode(WebInspector.UIString("D evice pixel ratio:"))); 455 rowElement.createChild("td").appendChild(WebInspector.SettingsUI.createS ettingInputField("", WebInspector.overridesSupport.settings.deviceScaleFactor, t rue, 2, "80px", WebInspector.OverridesSupport.inputValidator, true));
494 cellElement = rowElement.createChild("td");
495 this._deviceScaleFactorOverrideElement = WebInspector.SettingsUI.createI nput(cellElement, "metrics-override-device-scale", String(metrics.deviceScaleFac tor), this._applyDeviceMetricsUserInput.bind(this), true);
496 456
497 var textAutosizingOverrideElement = WebInspector.SettingsUI.createNonPer sistedCheckbox(WebInspector.UIString("Enable text autosizing "), this._applyDevi ceMetricsUserInput.bind(this)); 457 var textAutosizingOverrideElement = this._createSettingCheckbox(WebInspe ctor.UIString("Enable text autosizing "), WebInspector.overridesSupport.settings .deviceTextAutosizing);
498 textAutosizingOverrideElement.title = WebInspector.UIString("Text autosi zing is the feature that boosts font sizes on mobile devices."); 458 textAutosizingOverrideElement.title = WebInspector.UIString("Text autosi zing is the feature that boosts font sizes on mobile devices.");
499 this._textAutosizingOverrideCheckbox = textAutosizingOverrideElement.fir stChild;
500 this._textAutosizingOverrideCheckbox.checked = metrics.textAutosizing;
501 fieldsetElement.appendChild(textAutosizingOverrideElement); 459 fieldsetElement.appendChild(textAutosizingOverrideElement);
502 460
503 var checkbox = this._createSettingCheckbox(WebInspector.UIString("Emulat e viewport"), WebInspector.overridesSupport.settings.emulateViewport);
504 fieldsetElement.appendChild(checkbox);
505
506 if (!WebInspector.OverridesView.isResponsiveDesignEnabled()) { 461 if (!WebInspector.OverridesView.isResponsiveDesignEnabled()) {
507 checkbox = this._createSettingCheckbox(WebInspector.UIString("Shrink to fit"), WebInspector.overridesSupport.settings.deviceFitWindow); 462 checkbox = this._createSettingCheckbox(WebInspector.UIString("Shrink to fit"), WebInspector.overridesSupport.settings.deviceFitWindow);
508 fieldsetElement.appendChild(checkbox); 463 fieldsetElement.appendChild(checkbox);
509 } 464 }
510 465 this.element.appendChild(fieldsetElement);
511 return fieldsetElement;
512 },
513
514 _updateDeviceMetricsElement: function()
515 {
516 const metricsSetting = WebInspector.overridesSupport.settings.deviceMetr ics.get();
517 var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(m etricsSetting);
518
519 if (this._widthOverrideElement.value != metrics.width)
520 this._widthOverrideElement.value = metrics.width;
521 this._muteRangeListener = true;
522 if (this._widthRangeInput.value != metrics.width)
523 this._widthRangeInput.value = metrics.width;
524 delete this._muteRangeListener;
525 if (this._heightOverrideElement.value != metrics.height)
526 this._heightOverrideElement.value = metrics.height;
527 if (this._deviceScaleFactorOverrideElement.value != metrics.deviceScaleF actor)
528 this._deviceScaleFactorOverrideElement.value = metrics.deviceScaleFa ctor;
529 if (this._textAutosizingOverrideCheckbox.checked !== metrics.textAutosiz ing)
530 this._textAutosizingOverrideCheckbox.checked = metrics.textAutosizin g;
531 }, 466 },
532 467
533 _createMediaEmulationFragment: function() 468 _createMediaEmulationFragment: function()
534 { 469 {
535 var checkbox = WebInspector.SettingsUI.createSettingCheckbox(WebInspecto r.UIString("CSS media"), WebInspector.overridesSupport.settings.overrideCSSMedia , true); 470 var checkbox = WebInspector.SettingsUI.createSettingCheckbox(WebInspecto r.UIString("CSS media"), WebInspector.overridesSupport.settings.overrideCSSMedia , true);
536 var fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebI nspector.overridesSupport.settings.overrideCSSMedia); 471 var fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebI nspector.overridesSupport.settings.overrideCSSMedia);
537 if (WebInspector.overridesSupport.isInspectingDevice()) 472 if (WebInspector.overridesSupport.isInspectingDevice())
538 fieldsetElement.disabled = true; 473 fieldsetElement.disabled = true;
539 474
540 var mediaSelectElement = fieldsetElement.createChild("select"); 475 var mediaSelectElement = fieldsetElement.createChild("select");
(...skipping 10 matching lines...) Expand all
551 option.value = mediaType; 486 option.value = mediaType;
552 mediaSelectElement.add(option); 487 mediaSelectElement.add(option);
553 if (mediaType === defaultMedia) 488 if (mediaType === defaultMedia)
554 mediaSelectElement.selectedIndex = mediaSelectElement.options.le ngth - 1; 489 mediaSelectElement.selectedIndex = mediaSelectElement.options.le ngth - 1;
555 } 490 }
556 491
557 mediaSelectElement.addEventListener("change", this._emulateMediaChanged. bind(this, mediaSelectElement), false); 492 mediaSelectElement.addEventListener("change", this._emulateMediaChanged. bind(this, mediaSelectElement), false);
558 var fragment = document.createDocumentFragment(); 493 var fragment = document.createDocumentFragment();
559 fragment.appendChild(checkbox); 494 fragment.appendChild(checkbox);
560 fragment.appendChild(fieldsetElement); 495 fragment.appendChild(fieldsetElement);
561 return fragment; 496 this.element.appendChild(fragment);
562 }, 497 },
563 498
564 _emulateMediaChanged: function(select) 499 _emulateMediaChanged: function(select)
565 { 500 {
566 var media = select.options[select.selectedIndex].value; 501 var media = select.options[select.selectedIndex].value;
567 WebInspector.overridesSupport.settings.emulatedCSSMedia.set(media); 502 WebInspector.overridesSupport.settings.emulatedCSSMedia.set(media);
568 }, 503 },
569 504
570 _rangeValueChanged: function()
571 {
572 if (this._muteRangeListener)
573 return;
574 this._widthOverrideElement.value = this._widthRangeInput.value;
575 this._applyDeviceMetricsUserInput();
576 },
577
578 __proto__: WebInspector.OverridesView.Tab.prototype 505 __proto__: WebInspector.OverridesView.Tab.prototype
579 } 506 }
580 507
581 508
582 /** 509 /**
583 * @constructor 510 * @constructor
584 * @extends {WebInspector.OverridesView.Tab} 511 * @extends {WebInspector.OverridesView.Tab}
585 */ 512 */
586 WebInspector.OverridesView.UserAgentTab = function() 513 WebInspector.OverridesView.UserAgentTab = function()
587 { 514 {
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 931
1005 __proto__ : WebInspector.OverridesView.Tab.prototype 932 __proto__ : WebInspector.OverridesView.Tab.prototype
1006 } 933 }
1007 934
1008 /** @enum {string} */ 935 /** @enum {string} */
1009 WebInspector.OverridesView.SensorsTab.DeviceOrientationModificationSource = { 936 WebInspector.OverridesView.SensorsTab.DeviceOrientationModificationSource = {
1010 UserInput: "userInput", 937 UserInput: "userInput",
1011 UserDrag: "userDrag", 938 UserDrag: "userDrag",
1012 ResetButton: "resetButton" 939 ResetButton: "resetButton"
1013 } 940 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/common/Settings.js ('k') | Source/devtools/front_end/main/Main.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698