OLD | NEW |
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 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 | 508 |
509 /** | 509 /** |
510 * @param {string} deviceMetrics | 510 * @param {string} deviceMetrics |
511 * @param {string} userAgent | 511 * @param {string} userAgent |
512 */ | 512 */ |
513 emulateDevice: function(deviceMetrics, userAgent) | 513 emulateDevice: function(deviceMetrics, userAgent) |
514 { | 514 { |
515 var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(d
eviceMetrics); | 515 var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(d
eviceMetrics); |
516 this._deviceMetricsChangedListenerMuted = true; | 516 this._deviceMetricsChangedListenerMuted = true; |
517 this._userAgentChangedListenerMuted = true; | 517 this._userAgentChangedListenerMuted = true; |
518 this.settings.userAgent.set(userAgent); | 518 this.settings.deviceUserAgent.set(userAgent); |
519 this.settings.deviceWidth.set(metrics.width); | 519 this.settings.deviceWidth.set(metrics.width); |
520 this.settings.deviceHeight.set(metrics.height); | 520 this.settings.deviceHeight.set(metrics.height); |
521 this.settings.deviceScaleFactor.set(metrics.deviceScaleFactor); | 521 this.settings.deviceScaleFactor.set(metrics.deviceScaleFactor); |
522 this.settings.deviceTextAutosizing.set(metrics.textAutosizing); | 522 this.settings.deviceTextAutosizing.set(metrics.textAutosizing); |
523 this.settings.overrideUserAgent.set(true); | 523 this.settings.deviceTouch.set(true); |
524 this.settings.emulateTouchEvents.set(true); | |
525 this.settings.emulateViewport.set(true); | 524 this.settings.emulateViewport.set(true); |
526 this.settings.emulateDevice.set(true); | 525 this.settings.emulateDevice.set(true); |
527 delete this._deviceMetricsChangedListenerMuted; | 526 delete this._deviceMetricsChangedListenerMuted; |
528 delete this._userAgentChangedListenerMuted; | 527 delete this._userAgentChangedListenerMuted; |
529 | 528 |
530 if (this._initialized) { | 529 if (this._initialized) { |
531 this._deviceMetricsChanged(); | 530 this._deviceMetricsChanged(); |
532 this._userAgentChanged(); | 531 this._userAgentChanged(); |
533 } | 532 } |
534 }, | 533 }, |
535 | 534 |
536 /** | 535 reset: function() |
537 * @param {string} deviceMetrics | |
538 * @param {string} userAgent | |
539 * @return {boolean} | |
540 */ | |
541 isEmulatingDevice: function(deviceMetrics, userAgent) | |
542 { | |
543 var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(d
eviceMetrics); | |
544 return this.settings.userAgent.get() === userAgent | |
545 && this.settings.deviceWidth.get() === metrics.width | |
546 && this.settings.deviceHeight.get() === metrics.height | |
547 && this.settings.deviceScaleFactor.get() === metrics.deviceScaleFact
or | |
548 && this.settings.deviceTextAutosizing.get() === metrics.textAutosizi
ng | |
549 && this.settings.emulateTouchEvents.get() | |
550 && this.settings.emulateViewport.get(); | |
551 }, | |
552 | |
553 resetEmulatedDevice: function() | |
554 { | 536 { |
555 this._deviceMetricsChangedListenerMuted = true; | 537 this._deviceMetricsChangedListenerMuted = true; |
556 this._userAgentChangedListenerMuted = true; | 538 this._userAgentChangedListenerMuted = true; |
557 this.settings.emulateDevice.set(false); | 539 this.settings.emulateDevice.set(false); |
| 540 this.settings.sensorsTouch.set(false); |
558 this.settings.overrideUserAgent.set(false); | 541 this.settings.overrideUserAgent.set(false); |
559 this.settings.emulateTouchEvents.set(false); | 542 this.settings.overrideDeviceOrientation.set(false); |
560 this.settings.emulateViewport.set(false); | 543 this.settings.overrideGeolocation.set(false); |
| 544 this.settings.overrideCSSMedia.set(false); |
561 delete this._deviceMetricsChangedListenerMuted; | 545 delete this._deviceMetricsChangedListenerMuted; |
562 delete this._userAgentChangedListenerMuted; | 546 delete this._userAgentChangedListenerMuted; |
563 | 547 |
564 if (this._initialized) { | 548 if (this._initialized) { |
565 this._deviceMetricsChanged(); | 549 this._deviceMetricsChanged(); |
566 this._userAgentChanged(); | 550 this._userAgentChanged(); |
567 } | 551 } |
568 }, | 552 }, |
569 | 553 |
570 reset: function() | 554 /** |
| 555 * @param {string} deviceMetrics |
| 556 * @param {string} userAgent |
| 557 * @return {boolean} |
| 558 */ |
| 559 isEmulatingDevice: function(deviceMetrics, userAgent) |
571 { | 560 { |
572 this.settings.overrideDeviceOrientation.set(false); | 561 var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(d
eviceMetrics); |
573 this.settings.overrideGeolocation.set(false); | 562 return this.settings.deviceUserAgent.get() === userAgent |
574 this.settings.overrideCSSMedia.set(false); | 563 && this.settings.deviceWidth.get() === metrics.width |
575 this.resetEmulatedDevice(); | 564 && this.settings.deviceHeight.get() === metrics.height |
| 565 && this.settings.deviceScaleFactor.get() === metrics.deviceScaleFact
or |
| 566 && this.settings.deviceTextAutosizing.get() === metrics.textAutosizi
ng |
| 567 && this.settings.deviceTouch.get() |
| 568 && this.settings.emulateViewport.get(); |
576 }, | 569 }, |
577 | 570 |
578 applyInitialOverrides: function() | 571 applyInitialOverrides: function() |
579 { | 572 { |
580 if (!this._target) { | 573 if (!this._target) { |
581 this._applyInitialOverridesOnTargetAdded = true; | 574 this._applyInitialOverridesOnTargetAdded = true; |
582 return; | 575 return; |
583 } | 576 } |
584 | 577 |
585 this._initialized = true; | 578 this._initialized = true; |
586 | 579 |
| 580 this._addEmulateDeviceListener(this._userAgentChanged); |
| 581 this.settings.deviceUserAgent.addChangeListener(this._userAgentChanged,
this); |
587 this.settings.overrideUserAgent.addChangeListener(this._userAgentChanged
, this); | 582 this.settings.overrideUserAgent.addChangeListener(this._userAgentChanged
, this); |
588 this.settings.userAgent.addChangeListener(this._userAgentChanged, this); | 583 this.settings.userAgent.addChangeListener(this._userAgentChanged, this); |
589 this.settings.emulateDevice.addChangeListener(this._updateUserAgentAndTo
uchOnEmulateDeviceChanged, this); | |
590 | 584 |
591 this.settings.emulateDevice.addChangeListener(this._deviceMetricsChanged
, this); | 585 this._addEmulateDeviceListener(this._deviceMetricsChanged); |
592 this.settings.deviceWidth.addChangeListener(this._deviceMetricsChanged,
this); | 586 this.settings.deviceWidth.addChangeListener(this._deviceMetricsChanged,
this); |
593 this.settings.deviceHeight.addChangeListener(this._deviceMetricsChanged,
this); | 587 this.settings.deviceHeight.addChangeListener(this._deviceMetricsChanged,
this); |
594 this.settings.deviceScaleFactor.addChangeListener(this._deviceMetricsCha
nged, this); | 588 this.settings.deviceScaleFactor.addChangeListener(this._deviceMetricsCha
nged, this); |
595 this.settings.deviceTextAutosizing.addChangeListener(this._deviceMetrics
Changed, this); | 589 this.settings.deviceTextAutosizing.addChangeListener(this._deviceMetrics
Changed, this); |
596 this.settings.emulateViewport.addChangeListener(this._deviceMetricsChang
ed, this); | 590 this.settings.emulateViewport.addChangeListener(this._deviceMetricsChang
ed, this); |
597 this.settings.deviceFitWindow.addChangeListener(this._deviceMetricsChang
ed, this); | 591 this.settings.deviceFitWindow.addChangeListener(this._deviceMetricsChang
ed, this); |
598 WebInspector.settings.responsiveDesign.enabled.addChangeListener(this._d
eviceMetricsChanged, this); | |
599 | 592 |
600 this.settings.overrideGeolocation.addChangeListener(this._geolocationPos
itionChanged, this); | 593 this.settings.overrideGeolocation.addChangeListener(this._geolocationPos
itionChanged, this); |
601 this.settings.geolocationOverride.addChangeListener(this._geolocationPos
itionChanged, this); | 594 this.settings.geolocationOverride.addChangeListener(this._geolocationPos
itionChanged, this); |
602 | 595 |
603 this.settings.overrideDeviceOrientation.addChangeListener(this._deviceOr
ientationChanged, this); | 596 this.settings.overrideDeviceOrientation.addChangeListener(this._deviceOr
ientationChanged, this); |
604 this.settings.deviceOrientationOverride.addChangeListener(this._deviceOr
ientationChanged, this); | 597 this.settings.deviceOrientationOverride.addChangeListener(this._deviceOr
ientationChanged, this); |
605 | 598 |
606 this.settings.emulateDevice.addChangeListener(this._emulateTouchEventsCh
anged, this); | 599 this._addEmulateDeviceListener(this._emulateTouchEventsChanged); |
607 this.settings.emulateTouchEvents.addChangeListener(this._emulateTouchEve
ntsChanged, this); | 600 this.settings.deviceTouch.addChangeListener(this._emulateTouchEventsChan
ged, this); |
608 this.settings.emulateDevice.addChangeListener(this._updateUserAgentAndTo
uchOnEmulateDeviceChanged, this); | 601 this.settings.sensorsTouch.addChangeListener(this._emulateTouchEventsCha
nged, this); |
609 | 602 |
610 this.settings.overrideCSSMedia.addChangeListener(this._cssMediaChanged,
this); | 603 this.settings.overrideCSSMedia.addChangeListener(this._cssMediaChanged,
this); |
611 this.settings.emulatedCSSMedia.addChangeListener(this._cssMediaChanged,
this); | 604 this.settings.emulatedCSSMedia.addChangeListener(this._cssMediaChanged,
this); |
612 | 605 |
613 this.settings.emulateNetworkConditions.addChangeListener(this._networkCo
nditionsChanged, this); | 606 this.settings.emulateNetworkConditions.addChangeListener(this._networkCo
nditionsChanged, this); |
614 this.settings.networkConditionsDomains.addChangeListener(this._networkCo
nditionsChanged, this); | 607 this.settings.networkConditionsDomains.addChangeListener(this._networkCo
nditionsChanged, this); |
615 this.settings.networkConditionsThroughput.addChangeListener(this._networ
kConditionsChanged, this); | 608 this.settings.networkConditionsThroughput.addChangeListener(this._networ
kConditionsChanged, this); |
616 | 609 |
617 WebInspector.settings.showMetricsRulers.addChangeListener(this._showRule
rsChanged, this); | 610 WebInspector.settings.showMetricsRulers.addChangeListener(this._showRule
rsChanged, this); |
618 | 611 |
619 if (this.settings.overrideDeviceOrientation.get()) | 612 if (this.settings.overrideDeviceOrientation.get()) |
620 this._deviceOrientationChanged(); | 613 this._deviceOrientationChanged(); |
621 | 614 |
622 if (this.settings.overrideGeolocation.get()) | 615 if (this.settings.overrideGeolocation.get()) |
623 this._geolocationPositionChanged(); | 616 this._geolocationPositionChanged(); |
624 | 617 |
625 if (this.settings.emulateTouchEvents.get() && (this.settings.emulateDevi
ce.get() || !this._responsiveDesignAvailable)) | 618 if (this.isTouchEmulationEnabled()) |
626 this._emulateTouchEventsChanged(); | 619 this._emulateTouchEventsChanged(); |
627 | 620 |
628 if (this.settings.overrideCSSMedia.get()) | 621 if (this.settings.overrideCSSMedia.get()) |
629 this._cssMediaChanged(); | 622 this._cssMediaChanged(); |
630 | 623 |
631 if (this.settings.emulateDevice.get()) | 624 if (this.settings.emulateDevice.get()) |
632 this._deviceMetricsChanged(); | 625 this._deviceMetricsChanged(); |
633 | 626 |
634 if (this.settings.overrideUserAgent.get()) | 627 if (this.userAgentOverride()) |
635 this._userAgentChanged(); | 628 this._userAgentChanged(); |
636 | 629 |
637 if (this.settings.emulateNetworkConditions.get()) | 630 if (this.settings.emulateNetworkConditions.get()) |
638 this._networkConditionsChanged(); | 631 this._networkConditionsChanged(); |
639 | 632 |
640 this._showRulersChanged(); | 633 this._showRulersChanged(); |
641 }, | 634 }, |
642 | 635 |
643 _updateUserAgentAndTouchOnEmulateDeviceChanged: function() | 636 /** |
| 637 * @param {function(this:WebInspector.OverridesSupport)} listener |
| 638 */ |
| 639 _addEmulateDeviceListener: function(listener) |
644 { | 640 { |
645 var value = this.settings.emulateDevice.get(); | 641 this.settings.emulateDevice.addChangeListener(listener, this); |
646 if (this.settings.overrideUserAgent.get() !== value) | 642 WebInspector.settings.responsiveDesign.enabled.addChangeListener(listene
r, this); |
647 this.settings.overrideUserAgent.set(value); | |
648 if (this.settings.emulateTouchEvents.get() !== value && !this._responsiv
eDesignAvailable) | |
649 this.settings.emulateTouchEvents.set(value); | |
650 }, | 643 }, |
651 | 644 |
652 _userAgentChanged: function() | 645 _userAgentChanged: function() |
653 { | 646 { |
654 if (this._userAgentChangedListenerMuted) | 647 if (this._userAgentChangedListenerMuted) |
655 return; | 648 return; |
656 var userAgent = this.settings.overrideUserAgent.get() ? this.settings.us
erAgent.get() : ""; | 649 var userAgent = this.userAgentOverride(); |
657 NetworkAgent.setUserAgentOverride(userAgent); | 650 NetworkAgent.setUserAgentOverride(userAgent); |
658 if (this._userAgent !== userAgent) | 651 if (this._userAgent !== userAgent) |
659 this._updateUserAgentWarningMessage(WebInspector.UIString("You might
need to reload the page for proper user agent spoofing and viewport rendering."
)); | 652 this._updateUserAgentWarningMessage(WebInspector.UIString("You might
need to reload the page for proper user agent spoofing and viewport rendering."
)); |
660 this._userAgent = userAgent; | 653 this._userAgent = userAgent; |
661 this.maybeHasActiveOverridesChanged(); | 654 this.maybeHasActiveOverridesChanged(); |
662 }, | 655 }, |
663 | 656 |
664 _onPageResizerAvailableSizeChanged: function() | 657 _onPageResizerAvailableSizeChanged: function() |
665 { | 658 { |
666 if (this._initialized) | 659 if (this._initialized) |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
791 return; | 784 return; |
792 } | 785 } |
793 | 786 |
794 var deviceOrientation = WebInspector.OverridesSupport.DeviceOrientation.
parseSetting(this.settings.deviceOrientationOverride.get()); | 787 var deviceOrientation = WebInspector.OverridesSupport.DeviceOrientation.
parseSetting(this.settings.deviceOrientationOverride.get()); |
795 PageAgent.setDeviceOrientationOverride(deviceOrientation.alpha, deviceOr
ientation.beta, deviceOrientation.gamma); | 788 PageAgent.setDeviceOrientationOverride(deviceOrientation.alpha, deviceOr
ientation.beta, deviceOrientation.gamma); |
796 this.maybeHasActiveOverridesChanged(); | 789 this.maybeHasActiveOverridesChanged(); |
797 }, | 790 }, |
798 | 791 |
799 _emulateTouchEventsChanged: function() | 792 _emulateTouchEventsChanged: function() |
800 { | 793 { |
801 if (this.hasTouchInputs() && this.settings.emulateTouchEvents.get()) | 794 var emulateTouch = this.isTouchEmulationEnabled(); |
802 return; | |
803 | |
804 var emulateTouch = this.settings.emulateTouchEvents.get() && (this.setti
ngs.emulateDevice.get() || !this._responsiveDesignAvailable); | |
805 var targets = WebInspector.targetManager.targets(); | 795 var targets = WebInspector.targetManager.targets(); |
806 for (var i = 0; i < targets.length; ++i) | 796 for (var i = 0; i < targets.length; ++i) |
807 targets[i].domModel.emulateTouchEventObjects(emulateTouch); | 797 targets[i].domModel.emulateTouchEventObjects(emulateTouch); |
808 this.maybeHasActiveOverridesChanged(); | 798 this.maybeHasActiveOverridesChanged(); |
809 }, | 799 }, |
810 | 800 |
811 _cssMediaChanged: function() | 801 _cssMediaChanged: function() |
812 { | 802 { |
813 if (this.isInspectingDevice() && this.settings.overrideCSSMedia.get()) | 803 if (this.isInspectingDevice() && this.settings.overrideCSSMedia.get()) |
814 return; | 804 return; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
854 * @return {boolean} | 844 * @return {boolean} |
855 */ | 845 */ |
856 hasActiveOverrides: function() | 846 hasActiveOverrides: function() |
857 { | 847 { |
858 return this._hasActiveOverrides; | 848 return this._hasActiveOverrides; |
859 }, | 849 }, |
860 | 850 |
861 maybeHasActiveOverridesChanged: function() | 851 maybeHasActiveOverridesChanged: function() |
862 { | 852 { |
863 var hasActiveOverrides = | 853 var hasActiveOverrides = |
864 this.settings.overrideUserAgent.get() || | 854 !!this.userAgentOverride() || |
865 (this.settings.emulateDevice.get() && !this.isInspectingDevice()) || | 855 (this.settings.emulateDevice.get() && !this.isInspectingDevice()) || |
866 this.settings.overrideGeolocation.get() || | 856 this.settings.overrideGeolocation.get() || |
867 this.settings.overrideDeviceOrientation.get() || | 857 this.settings.overrideDeviceOrientation.get() || |
868 (this.settings.emulateTouchEvents.get() && this.settings.emulateDevi
ce.get() && !this.hasTouchInputs()) || | 858 this.isTouchEmulationEnabled() || |
869 (this.settings.overrideCSSMedia.get() && !this.isInspectingDevice())
; | 859 (this.settings.overrideCSSMedia.get() && !this.isInspectingDevice())
; |
870 if (this._hasActiveOverrides !== hasActiveOverrides) { | 860 if (this._hasActiveOverrides !== hasActiveOverrides) { |
871 this._hasActiveOverrides = hasActiveOverrides; | 861 this._hasActiveOverrides = hasActiveOverrides; |
872 this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.H
asActiveOverridesChanged); | 862 this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.H
asActiveOverridesChanged); |
873 } | 863 } |
874 }, | 864 }, |
875 | 865 |
876 _onMainFrameNavigated: function() | 866 _onMainFrameNavigated: function() |
877 { | 867 { |
878 if (this._initialized) | 868 if (this._initialized) |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
922 this.settings.userAgent = WebInspector.settings.createSetting("userAgent
", ""); | 912 this.settings.userAgent = WebInspector.settings.createSetting("userAgent
", ""); |
923 | 913 |
924 this.settings.emulateDevice = WebInspector.settings.createSetting("emula
teDevice", false); | 914 this.settings.emulateDevice = WebInspector.settings.createSetting("emula
teDevice", false); |
925 this.settings.deviceWidth = WebInspector.settings.createSetting("deviceW
idth", 800); | 915 this.settings.deviceWidth = WebInspector.settings.createSetting("deviceW
idth", 800); |
926 this.settings.deviceHeight = WebInspector.settings.createSetting("device
Height", 600); | 916 this.settings.deviceHeight = WebInspector.settings.createSetting("device
Height", 600); |
927 this.settings.deviceScaleFactor = WebInspector.settings.createSetting("d
eviceScaleFactor", window.devicePixelRatio); | 917 this.settings.deviceScaleFactor = WebInspector.settings.createSetting("d
eviceScaleFactor", window.devicePixelRatio); |
928 this.settings.deviceTextAutosizing = WebInspector.settings.createSetting
("deviceTextAutosizing", true); | 918 this.settings.deviceTextAutosizing = WebInspector.settings.createSetting
("deviceTextAutosizing", true); |
929 this.settings.deviceFitWindow = WebInspector.settings.createSetting("dev
iceFitWindow", true); | 919 this.settings.deviceFitWindow = WebInspector.settings.createSetting("dev
iceFitWindow", true); |
930 // FIXME: rename viewport to mobile everywhere in the code. | 920 // FIXME: rename viewport to mobile everywhere in the code. |
931 this.settings.emulateViewport = WebInspector.settings.createSetting("emu
lateViewport", false); | 921 this.settings.emulateViewport = WebInspector.settings.createSetting("emu
lateViewport", false); |
932 this.settings.emulateTouchEvents = WebInspector.settings.createSetting("
emulateTouchEvents", false); | 922 this.settings.deviceTouch = WebInspector.settings.createSetting("deviceT
ouch", false); |
| 923 this.settings.deviceUserAgent = WebInspector.settings.createSetting("dev
iceUserAgent", false); |
933 | 924 |
934 this.settings.overrideGeolocation = WebInspector.settings.createSetting(
"overrideGeolocation", false); | 925 this.settings.overrideGeolocation = WebInspector.settings.createSetting(
"overrideGeolocation", false); |
935 this.settings.geolocationOverride = WebInspector.settings.createSetting(
"geolocationOverride", ""); | 926 this.settings.geolocationOverride = WebInspector.settings.createSetting(
"geolocationOverride", ""); |
936 this.settings.overrideDeviceOrientation = WebInspector.settings.createSe
tting("overrideDeviceOrientation", false); | 927 this.settings.overrideDeviceOrientation = WebInspector.settings.createSe
tting("overrideDeviceOrientation", false); |
937 this.settings.deviceOrientationOverride = WebInspector.settings.createSe
tting("deviceOrientationOverride", ""); | 928 this.settings.deviceOrientationOverride = WebInspector.settings.createSe
tting("deviceOrientationOverride", ""); |
938 this.settings.overrideCSSMedia = WebInspector.settings.createSetting("ov
errideCSSMedia", false); | 929 this.settings.overrideCSSMedia = WebInspector.settings.createSetting("ov
errideCSSMedia", false); |
939 this.settings.emulatedCSSMedia = WebInspector.settings.createSetting("em
ulatedCSSMedia", "print"); | 930 this.settings.emulatedCSSMedia = WebInspector.settings.createSetting("em
ulatedCSSMedia", "print"); |
| 931 this.settings.sensorsTouch = WebInspector.settings.createSetting("sensor
sTouch", false); |
940 | 932 |
941 this.settings.emulateNetworkConditions = WebInspector.settings.createSet
ting("emulateNetworkConditions", false); | 933 this.settings.emulateNetworkConditions = WebInspector.settings.createSet
ting("emulateNetworkConditions", false); |
942 this.settings.networkConditionsDomains = WebInspector.settings.createSet
ting("networkConditionsDomains", ""); | 934 this.settings.networkConditionsDomains = WebInspector.settings.createSet
ting("networkConditionsDomains", ""); |
943 this.settings.networkConditionsThroughput = WebInspector.settings.create
Setting("networkConditionsThroughput", 0); | 935 this.settings.networkConditionsThroughput = WebInspector.settings.create
Setting("networkConditionsThroughput", 0); |
944 | 936 |
945 this.maybeHasActiveOverridesChanged(); | 937 this.maybeHasActiveOverridesChanged(); |
946 | 938 |
947 if (this._applyInitialOverridesOnTargetAdded) { | 939 if (this._applyInitialOverridesOnTargetAdded) { |
948 delete this._applyInitialOverridesOnTargetAdded; | 940 delete this._applyInitialOverridesOnTargetAdded; |
949 this.applyInitialOverrides(); | 941 this.applyInitialOverrides(); |
(...skipping 20 matching lines...) Expand all Loading... |
970 * @return {boolean} | 962 * @return {boolean} |
971 */ | 963 */ |
972 isInspectingDevice: function() | 964 isInspectingDevice: function() |
973 { | 965 { |
974 return !!this._target && this._target.isMobile(); | 966 return !!this._target && this._target.isMobile(); |
975 }, | 967 }, |
976 | 968 |
977 /** | 969 /** |
978 * @return {boolean} | 970 * @return {boolean} |
979 */ | 971 */ |
| 972 isEmulateDeviceEnabled: function() |
| 973 { |
| 974 return this.settings.emulateDevice.get() && (!this._responsiveDesignAvai
lable || WebInspector.settings.responsiveDesign.enabled.get()); |
| 975 }, |
| 976 |
| 977 /** |
| 978 * @return {boolean} |
| 979 */ |
| 980 isTouchEmulationEnabled: function() |
| 981 { |
| 982 return !this.hasTouchInputs() && ((this.isEmulateDeviceEnabled() && this
.settings.deviceTouch.get()) || this.settings.sensorsTouch.get()); |
| 983 }, |
| 984 |
| 985 /** |
| 986 * @return {string} |
| 987 */ |
| 988 userAgentOverride: function() |
| 989 { |
| 990 return this.isEmulateDeviceEnabled() ? this.settings.deviceUserAgent.get
() : (this.settings.overrideUserAgent.get() ? this.settings.userAgent.get() : ""
); |
| 991 }, |
| 992 |
| 993 /** |
| 994 * @return {boolean} |
| 995 */ |
980 hasTouchInputs: function() | 996 hasTouchInputs: function() |
981 { | 997 { |
982 return !!this._target && this._target.hasTouchInputs; | 998 return !!this._target && this._target.hasTouchInputs; |
983 }, | 999 }, |
984 | 1000 |
| 1001 updateSensorsTouchToMatchDeviceTouch: function() |
| 1002 { |
| 1003 var enabled = this.isEmulateDeviceEnabled() && this.settings.deviceTouch
.get(); |
| 1004 if (this.settings.sensorsTouch.get() !== enabled) |
| 1005 this.settings.sensorsTouch.set(enabled); |
| 1006 }, |
| 1007 |
| 1008 updateUserAgentToMatchDeviceUserAgent: function() |
| 1009 { |
| 1010 var userAgent = this.settings.deviceUserAgent.get(); |
| 1011 if (this.isEmulateDeviceEnabled() && userAgent && this.settings.userAgen
t.get() !== userAgent) |
| 1012 this.settings.userAgent.set(userAgent); |
| 1013 var enabled = this.isEmulateDeviceEnabled() && !!this.settings.deviceUse
rAgent.get(); |
| 1014 if (this.settings.overrideUserAgent.get() !== enabled) |
| 1015 this.settings.overrideUserAgent.set(enabled); |
| 1016 }, |
| 1017 |
985 /** | 1018 /** |
986 * Compute the font scale factor. | 1019 * Compute the font scale factor. |
987 * | 1020 * |
988 * Chromium on Android uses a device scale adjustment for fonts used in text
autosizing for | 1021 * Chromium on Android uses a device scale adjustment for fonts used in text
autosizing for |
989 * improved legibility. This function computes this adjusted value for text
autosizing. | 1022 * improved legibility. This function computes this adjusted value for text
autosizing. |
990 * | 1023 * |
991 * For a description of the Android device scale adjustment algorithm, see: | 1024 * For a description of the Android device scale adjustment algorithm, see: |
992 * chrome/browser/chrome_content_browser_client.cc, GetFontScaleMultipli
er(...) | 1025 * chrome/browser/chrome_content_browser_client.cc, GetFontScaleMultipli
er(...) |
993 * | 1026 * |
994 * @param {number} width | 1027 * @param {number} width |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1045 | 1078 |
1046 deviceSelectElement.addEventListener("change", deviceSelected, false); | 1079 deviceSelectElement.addEventListener("change", deviceSelected, false); |
1047 | 1080 |
1048 var emulatedSettingChangedMuted = false; | 1081 var emulatedSettingChangedMuted = false; |
1049 WebInspector.overridesSupport.settings.deviceWidth.addChangeListener(emu
latedSettingChanged); | 1082 WebInspector.overridesSupport.settings.deviceWidth.addChangeListener(emu
latedSettingChanged); |
1050 WebInspector.overridesSupport.settings.deviceHeight.addChangeListener(em
ulatedSettingChanged); | 1083 WebInspector.overridesSupport.settings.deviceHeight.addChangeListener(em
ulatedSettingChanged); |
1051 WebInspector.overridesSupport.settings.deviceScaleFactor.addChangeListen
er(emulatedSettingChanged); | 1084 WebInspector.overridesSupport.settings.deviceScaleFactor.addChangeListen
er(emulatedSettingChanged); |
1052 WebInspector.overridesSupport.settings.deviceTextAutosizing.addChangeLis
tener(emulatedSettingChanged); | 1085 WebInspector.overridesSupport.settings.deviceTextAutosizing.addChangeLis
tener(emulatedSettingChanged); |
1053 WebInspector.overridesSupport.settings.emulateViewport.addChangeListener
(emulatedSettingChanged); | 1086 WebInspector.overridesSupport.settings.emulateViewport.addChangeListener
(emulatedSettingChanged); |
1054 WebInspector.overridesSupport.settings.deviceFitWindow.addChangeListener
(emulatedSettingChanged); | 1087 WebInspector.overridesSupport.settings.deviceFitWindow.addChangeListener
(emulatedSettingChanged); |
1055 WebInspector.overridesSupport.settings.emulateTouchEvents.addChangeListe
ner(emulatedSettingChanged); | 1088 WebInspector.overridesSupport.settings.deviceTouch.addChangeListener(emu
latedSettingChanged); |
1056 WebInspector.overridesSupport.settings.overrideUserAgent.addChangeListen
er(emulatedSettingChanged); | 1089 WebInspector.overridesSupport.settings.deviceUserAgent.addChangeListener
(emulatedSettingChanged); |
1057 WebInspector.overridesSupport.settings.userAgent.addChangeListener(emula
tedSettingChanged); | |
1058 emulatedSettingChanged(); | 1090 emulatedSettingChanged(); |
1059 | 1091 |
1060 function deviceSelected() | 1092 function deviceSelected() |
1061 { | 1093 { |
1062 if (deviceSelectElement.selectedIndex === devices.length - 1) | 1094 if (deviceSelectElement.selectedIndex === devices.length - 1) |
1063 return; | 1095 return; |
1064 | 1096 |
1065 var option = deviceSelectElement.options[deviceSelectElement.selecte
dIndex]; | 1097 var option = deviceSelectElement.options[deviceSelectElement.selecte
dIndex]; |
1066 emulatedSettingChangedMuted = true; | 1098 emulatedSettingChangedMuted = true; |
1067 WebInspector.overridesSupport.emulateDevice(option.metrics, option.u
serAgent); | 1099 WebInspector.overridesSupport.emulateDevice(option.metrics, option.u
serAgent); |
(...skipping 14 matching lines...) Expand all Loading... |
1082 } | 1114 } |
1083 } | 1115 } |
1084 deviceSelectElement.selectedIndex = index; | 1116 deviceSelectElement.selectedIndex = index; |
1085 } | 1117 } |
1086 | 1118 |
1087 return deviceSelectElement; | 1119 return deviceSelectElement; |
1088 }, | 1120 }, |
1089 | 1121 |
1090 /** | 1122 /** |
1091 * @param {!Document} document | 1123 * @param {!Document} document |
1092 * @return {{select: !Element, input: !Element}} | |
1093 */ | |
1094 createUserAgentSelectAndInput: function(document) | |
1095 { | |
1096 var overrideUserAgentSetting = WebInspector.overridesSupport.settings.ov
errideUserAgent; | |
1097 var userAgentSetting = WebInspector.overridesSupport.settings.userAgent; | |
1098 var userAgents = WebInspector.OverridesSupport._userAgents.concat([[WebI
nspector.UIString("Other"), "Other"]]); | |
1099 | |
1100 var userAgentSelectElement = document.createElement("select"); | |
1101 for (var i = 0; i < userAgents.length; ++i) | |
1102 userAgentSelectElement.add(new Option(userAgents[i][0], userAgents[i
][1])); | |
1103 userAgentSelectElement.selectedIndex = 0; | |
1104 | |
1105 var otherUserAgentElement = document.createElement("input"); | |
1106 otherUserAgentElement.type = "text"; | |
1107 otherUserAgentElement.value = userAgentSetting.get(); | |
1108 otherUserAgentElement.title = userAgentSetting.get(); | |
1109 | |
1110 settingChanged(); | |
1111 userAgentSetting.addChangeListener(settingChanged); | |
1112 userAgentSelectElement.addEventListener("change", userAgentSelected, fal
se); | |
1113 | |
1114 otherUserAgentElement.addEventListener("dblclick", textDoubleClicked, tr
ue); | |
1115 otherUserAgentElement.addEventListener("blur", textChanged, false); | |
1116 otherUserAgentElement.addEventListener("keydown", textKeyDown, false); | |
1117 | |
1118 function userAgentSelected() | |
1119 { | |
1120 var value = userAgentSelectElement.options[userAgentSelectElement.se
lectedIndex].value; | |
1121 if (value !== "Other") { | |
1122 userAgentSetting.removeChangeListener(settingChanged); | |
1123 userAgentSetting.set(value); | |
1124 userAgentSetting.addChangeListener(settingChanged); | |
1125 otherUserAgentElement.value = value; | |
1126 otherUserAgentElement.title = value; | |
1127 otherUserAgentElement.readOnly = true; | |
1128 } else { | |
1129 otherUserAgentElement.readOnly = !overrideUserAgentSetting.get()
; | |
1130 otherUserAgentElement.focus(); | |
1131 } | |
1132 overrideUserAgentSetting.set(true); | |
1133 } | |
1134 | |
1135 function settingChanged() | |
1136 { | |
1137 var value = userAgentSetting.get(); | |
1138 var options = userAgentSelectElement.options; | |
1139 var selectionRestored = false; | |
1140 for (var i = 0; i < options.length; ++i) { | |
1141 if (options[i].value === value) { | |
1142 userAgentSelectElement.selectedIndex = i; | |
1143 selectionRestored = true; | |
1144 break; | |
1145 } | |
1146 } | |
1147 | |
1148 otherUserAgentElement.readOnly = !overrideUserAgentSetting.get() ||
selectionRestored; | |
1149 if (!selectionRestored) | |
1150 userAgentSelectElement.selectedIndex = options.length - 1; | |
1151 | |
1152 if (otherUserAgentElement.value !== value) { | |
1153 otherUserAgentElement.value = value; | |
1154 otherUserAgentElement.title = value; | |
1155 } | |
1156 } | |
1157 | |
1158 function textKeyDown(event) | |
1159 { | |
1160 if (isEnterKey(event)) | |
1161 textChanged(); | |
1162 } | |
1163 | |
1164 function textDoubleClicked() | |
1165 { | |
1166 userAgentSelectElement.selectedIndex = userAgents.length - 1; | |
1167 userAgentSelected(); | |
1168 } | |
1169 | |
1170 function textChanged() | |
1171 { | |
1172 if (userAgentSetting.get() !== otherUserAgentElement.value) | |
1173 userAgentSetting.set(otherUserAgentElement.value); | |
1174 } | |
1175 | |
1176 overrideUserAgentSetting.addChangeListener(overrideUserAgentChanged); | |
1177 function overrideUserAgentChanged() | |
1178 { | |
1179 otherUserAgentElement.readOnly = !overrideUserAgentSetting.get() ||
(userAgentSelectElement.options[userAgentSelectElement.selectedIndex].value !==
"Other"); | |
1180 } | |
1181 | |
1182 return { select: userAgentSelectElement, input: otherUserAgentElement }; | |
1183 }, | |
1184 | |
1185 /** | |
1186 * @param {!Document} document | |
1187 * @return {!Element} | 1124 * @return {!Element} |
1188 */ | 1125 */ |
1189 createNetworkThroughputSelect: function(document) | 1126 createNetworkThroughputSelect: function(document) |
1190 { | 1127 { |
1191 var throughputSetting = WebInspector.overridesSupport.settings.networkCo
nditionsThroughput; | 1128 var throughputSetting = WebInspector.overridesSupport.settings.networkCo
nditionsThroughput; |
1192 var emulateNetworkSetting = WebInspector.overridesSupport.settings.emula
teNetworkConditions; | 1129 var emulateNetworkSetting = WebInspector.overridesSupport.settings.emula
teNetworkConditions; |
1193 var throughputSelectElement = document.createElement("select"); | 1130 var throughputSelectElement = document.createElement("select"); |
1194 var presets = WebInspector.OverridesSupport._networkThroughputPresets; | 1131 var presets = WebInspector.OverridesSupport._networkThroughputPresets; |
1195 for (var i = 0; i < presets.length; ++i) | 1132 for (var i = 0; i < presets.length; ++i) |
1196 throughputSelectElement.add(new Option(presets[i][0], presets[i][1])
); | 1133 throughputSelectElement.add(new Option(presets[i][0], presets[i][1])
); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1229 }, | 1166 }, |
1230 | 1167 |
1231 __proto__: WebInspector.Object.prototype | 1168 __proto__: WebInspector.Object.prototype |
1232 } | 1169 } |
1233 | 1170 |
1234 | 1171 |
1235 /** | 1172 /** |
1236 * @type {!WebInspector.OverridesSupport} | 1173 * @type {!WebInspector.OverridesSupport} |
1237 */ | 1174 */ |
1238 WebInspector.overridesSupport; | 1175 WebInspector.overridesSupport; |
OLD | NEW |