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

Side by Side Diff: Source/devtools/front_end/sdk/OverridesSupport.js

Issue 315003008: [DevTools] UI for network conditions emulation. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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/overrides.css ('k') | Source/devtools/front_end/ui/SettingsUI.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) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 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 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 /** 260 /**
261 * @param {string} value 261 * @param {string} value
262 */ 262 */
263 WebInspector.OverridesSupport.inputValidator = function(value) 263 WebInspector.OverridesSupport.inputValidator = function(value)
264 { 264 {
265 if (value >= 0 && value <= 10000) 265 if (value >= 0 && value <= 10000)
266 return ""; 266 return "";
267 return WebInspector.UIString("Value must be non-negative integer"); 267 return WebInspector.UIString("Value must be non-negative integer");
268 } 268 }
269 269
270 /**
271 * @param {string} value
eustas 2014/06/05 15:06:51 please specify return type.
272 */
273 WebInspector.OverridesSupport.networkDomainsValidator = function(value)
274 {
275 function test(s)
276 {
277 return /^[\w\-]+(\.[\w\-]+)*$/.test(s.trim());
278 }
279
280 if (!value.trim())
281 return "";
282 return value.split(",").every(test) ? "" : WebInspector.UIString("Value must be a comma-separated list of domains");
283 }
284
270 // Third element lists device metrics separated by 'x': 285 // Third element lists device metrics separated by 'x':
271 // - screen width, 286 // - screen width,
272 // - screen height, 287 // - screen height,
273 // - device scale factor, 288 // - device scale factor,
274 WebInspector.OverridesSupport._phones = [ 289 WebInspector.OverridesSupport._phones = [
275 ["Apple iPhone 3GS", 290 ["Apple iPhone 3GS",
276 "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", 291 "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",
277 "320x480x1"], 292 "320x480x1"],
278 ["Apple iPhone 4", 293 ["Apple iPhone 4",
279 "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", 294 "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",
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 541
527 if (this.settings.overrideCSSMedia.get()) 542 if (this.settings.overrideCSSMedia.get())
528 this._cssMediaChanged(); 543 this._cssMediaChanged();
529 544
530 if (this.settings.overrideDeviceResolution.get() || this.settings.emulat eViewport.get()) 545 if (this.settings.overrideDeviceResolution.get() || this.settings.emulat eViewport.get())
531 this._deviceMetricsChanged(); 546 this._deviceMetricsChanged();
532 547
533 if (this.settings.overrideUserAgent.get()) 548 if (this.settings.overrideUserAgent.get())
534 this._userAgentChanged(); 549 this._userAgentChanged();
535 550
551 if (this.settings.emulateNetworkConditions.get())
552 this._networkConditionsChanged();
553
536 this._showRulersChanged(); 554 this._showRulersChanged();
537 }, 555 },
538 556
539 _userAgentChanged: function() 557 _userAgentChanged: function()
540 { 558 {
541 if (this._userAgentChangedListenerMuted) 559 if (this._userAgentChangedListenerMuted)
542 return; 560 return;
543 var userAgent = this.settings.overrideUserAgent.get() ? this.settings.us erAgent.get() : ""; 561 var userAgent = this.settings.overrideUserAgent.get() ? this.settings.us erAgent.get() : "";
544 NetworkAgent.setUserAgentOverride(userAgent); 562 NetworkAgent.setUserAgentOverride(userAgent);
545 if (this._userAgent !== userAgent) 563 if (this._userAgent !== userAgent)
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
701 if (this.isInspectingDevice() && this.settings.overrideCSSMedia.get()) 719 if (this.isInspectingDevice() && this.settings.overrideCSSMedia.get())
702 return; 720 return;
703 721
704 PageAgent.setEmulatedMedia(this.settings.overrideCSSMedia.get() ? this.s ettings.emulatedCSSMedia.get() : ""); 722 PageAgent.setEmulatedMedia(this.settings.overrideCSSMedia.get() ? this.s ettings.emulatedCSSMedia.get() : "");
705 var targets = WebInspector.targetManager.targets(); 723 var targets = WebInspector.targetManager.targets();
706 for (var i = 0; i < targets.length; ++i) 724 for (var i = 0; i < targets.length; ++i)
707 targets[i].cssModel.mediaQueryResultChanged(); 725 targets[i].cssModel.mediaQueryResultChanged();
708 this.maybeHasActiveOverridesChanged(); 726 this.maybeHasActiveOverridesChanged();
709 }, 727 },
710 728
729 _networkConditionsChanged: function()
730 {
731 var domainsString = this.settings.networkDomains.get().trim();
732 var domains = domainsString ? domainsString.split(",").map(function (s) { return s.trim(); }) : [];
733 NetworkAgent.emulateNetworkConditions(domains, 0, this.settings.emulateN etworkConditions.get());
734 this.maybeHasActiveOverridesChanged();
735 },
736
711 /** 737 /**
712 * @return {boolean} 738 * @return {boolean}
713 */ 739 */
714 showMetricsRulers: function() 740 showMetricsRulers: function()
715 { 741 {
716 var rulersInPageResizer = this._pageResizer && this.settings.overrideDev iceResolution.get(); 742 var rulersInPageResizer = this._pageResizer && this.settings.overrideDev iceResolution.get();
717 return WebInspector.settings.showMetricsRulers.get() && !rulersInPageRes izer; 743 return WebInspector.settings.showMetricsRulers.get() && !rulersInPageRes izer;
718 }, 744 },
719 745
720 _showRulersChanged: function() 746 _showRulersChanged: function()
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
804 this.settings.emulateViewport = WebInspector.settings.createSetting("emu lateViewport", false); 830 this.settings.emulateViewport = WebInspector.settings.createSetting("emu lateViewport", false);
805 this.settings.emulateTouchEvents = WebInspector.settings.createSetting(" emulateTouchEvents", false); 831 this.settings.emulateTouchEvents = WebInspector.settings.createSetting(" emulateTouchEvents", false);
806 this.settings.overrideGeolocation = WebInspector.settings.createSetting( "overrideGeolocation", false); 832 this.settings.overrideGeolocation = WebInspector.settings.createSetting( "overrideGeolocation", false);
807 this.settings.geolocationOverride = WebInspector.settings.createSetting( "geolocationOverride", ""); 833 this.settings.geolocationOverride = WebInspector.settings.createSetting( "geolocationOverride", "");
808 this.settings.overrideDeviceOrientation = WebInspector.settings.createSe tting("overrideDeviceOrientation", false); 834 this.settings.overrideDeviceOrientation = WebInspector.settings.createSe tting("overrideDeviceOrientation", false);
809 this.settings.deviceOrientationOverride = WebInspector.settings.createSe tting("deviceOrientationOverride", ""); 835 this.settings.deviceOrientationOverride = WebInspector.settings.createSe tting("deviceOrientationOverride", "");
810 this.settings.overrideCSSMedia = WebInspector.settings.createSetting("ov errideCSSMedia", false); 836 this.settings.overrideCSSMedia = WebInspector.settings.createSetting("ov errideCSSMedia", false);
811 this.settings.emulatedCSSMedia = WebInspector.settings.createSetting("em ulatedCSSMedia", "print"); 837 this.settings.emulatedCSSMedia = WebInspector.settings.createSetting("em ulatedCSSMedia", "print");
812 this.settings.emulatedDevice = WebInspector.settings.createSetting("emul atedDevice", "Google Nexus 5"); 838 this.settings.emulatedDevice = WebInspector.settings.createSetting("emul atedDevice", "Google Nexus 5");
813 839
840 this.settings.emulateNetworkConditions = WebInspector.settings.createSet ting("emulateNetworkConditions", false);
841 this.settings.networkDomains = WebInspector.settings.createSetting("netw orkDomains", "");
842
pfeldman 2014/06/05 15:13:43 networkOfflineDomains?
814 this.maybeHasActiveOverridesChanged(); 843 this.maybeHasActiveOverridesChanged();
815 844
816 this.settings.overrideUserAgent.addChangeListener(this._userAgentChanged , this); 845 this.settings.overrideUserAgent.addChangeListener(this._userAgentChanged , this);
817 this.settings.userAgent.addChangeListener(this._userAgentChanged, this); 846 this.settings.userAgent.addChangeListener(this._userAgentChanged, this);
818 847
819 this.settings.overrideDeviceResolution.addChangeListener(this._deviceMet ricsChanged, this); 848 this.settings.overrideDeviceResolution.addChangeListener(this._deviceMet ricsChanged, this);
820 this.settings.deviceWidth.addChangeListener(this._deviceMetricsChanged, this); 849 this.settings.deviceWidth.addChangeListener(this._deviceMetricsChanged, this);
821 this.settings.deviceHeight.addChangeListener(this._deviceMetricsChanged, this); 850 this.settings.deviceHeight.addChangeListener(this._deviceMetricsChanged, this);
822 this.settings.deviceScaleFactor.addChangeListener(this._deviceMetricsCha nged, this); 851 this.settings.deviceScaleFactor.addChangeListener(this._deviceMetricsCha nged, this);
823 this.settings.deviceTextAutosizing.addChangeListener(this._deviceMetrics Changed, this); 852 this.settings.deviceTextAutosizing.addChangeListener(this._deviceMetrics Changed, this);
824 this.settings.emulateViewport.addChangeListener(this._deviceMetricsChang ed, this); 853 this.settings.emulateViewport.addChangeListener(this._deviceMetricsChang ed, this);
825 this.settings.deviceFitWindow.addChangeListener(this._deviceMetricsChang ed, this); 854 this.settings.deviceFitWindow.addChangeListener(this._deviceMetricsChang ed, this);
826 855
827 this.settings.overrideGeolocation.addChangeListener(this._geolocationPos itionChanged, this); 856 this.settings.overrideGeolocation.addChangeListener(this._geolocationPos itionChanged, this);
828 this.settings.geolocationOverride.addChangeListener(this._geolocationPos itionChanged, this); 857 this.settings.geolocationOverride.addChangeListener(this._geolocationPos itionChanged, this);
829 858
830 this.settings.overrideDeviceOrientation.addChangeListener(this._deviceOr ientationChanged, this); 859 this.settings.overrideDeviceOrientation.addChangeListener(this._deviceOr ientationChanged, this);
831 this.settings.deviceOrientationOverride.addChangeListener(this._deviceOr ientationChanged, this); 860 this.settings.deviceOrientationOverride.addChangeListener(this._deviceOr ientationChanged, this);
832 861
833 this.settings.emulateTouchEvents.addChangeListener(this._emulateTouchEve ntsChanged, this); 862 this.settings.emulateTouchEvents.addChangeListener(this._emulateTouchEve ntsChanged, this);
834 863
835 this.settings.overrideCSSMedia.addChangeListener(this._cssMediaChanged, this); 864 this.settings.overrideCSSMedia.addChangeListener(this._cssMediaChanged, this);
836 this.settings.emulatedCSSMedia.addChangeListener(this._cssMediaChanged, this); 865 this.settings.emulatedCSSMedia.addChangeListener(this._cssMediaChanged, this);
837 866
867 this.settings.emulateNetworkConditions.addChangeListener(this._networkCo nditionsChanged, this);
868 this.settings.networkDomains.addChangeListener(this._networkConditionsCh anged, this);
869
838 WebInspector.settings.showMetricsRulers.addChangeListener(this._showRule rsChanged, this); 870 WebInspector.settings.showMetricsRulers.addChangeListener(this._showRule rsChanged, this);
839 871
840 if (this._applyInitialOverridesOnTargetAdded) { 872 if (this._applyInitialOverridesOnTargetAdded) {
841 delete this._applyInitialOverridesOnTargetAdded; 873 delete this._applyInitialOverridesOnTargetAdded;
842 this.applyInitialOverrides(); 874 this.applyInitialOverrides();
843 } 875 }
844 }, 876 },
845 877
846 swapDimensions: function() 878 swapDimensions: function()
847 { 879 {
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 }, 1092 },
1061 1093
1062 __proto__: WebInspector.Object.prototype 1094 __proto__: WebInspector.Object.prototype
1063 } 1095 }
1064 1096
1065 1097
1066 /** 1098 /**
1067 * @type {!WebInspector.OverridesSupport} 1099 * @type {!WebInspector.OverridesSupport}
1068 */ 1100 */
1069 WebInspector.overridesSupport; 1101 WebInspector.overridesSupport;
OLDNEW
« no previous file with comments | « Source/devtools/front_end/overrides.css ('k') | Source/devtools/front_end/ui/SettingsUI.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698