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

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

Issue 298913004: [DevTools] Add Toolbox page to undocked DevTools frontend. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
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
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 23 matching lines...) Expand all
34 * @extends {WebInspector.Object} 34 * @extends {WebInspector.Object}
35 * @param {boolean} responsiveDesignAvailable 35 * @param {boolean} responsiveDesignAvailable
36 */ 36 */
37 WebInspector.OverridesSupport = function(responsiveDesignAvailable) 37 WebInspector.OverridesSupport = function(responsiveDesignAvailable)
38 { 38 {
39 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod el.EventTypes.MainFrameNavigated, this._onMainFrameNavigated.bind(this), this); 39 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod el.EventTypes.MainFrameNavigated, this._onMainFrameNavigated.bind(this), this);
40 this._overrideDeviceResolution = false; 40 this._overrideDeviceResolution = false;
41 this._emulateViewportEnabled = false; 41 this._emulateViewportEnabled = false;
42 this._userAgent = ""; 42 this._userAgent = "";
43 this._pageResizer = null; 43 this._pageResizer = null;
44 this._initialized = false;
44 WebInspector.targetManager.observeTargets(this); 45 WebInspector.targetManager.observeTargets(this);
45 this._responsiveDesignAvailable = responsiveDesignAvailable; 46 this._responsiveDesignAvailable = responsiveDesignAvailable;
46 } 47 }
47 48
48 WebInspector.OverridesSupport.Events = { 49 WebInspector.OverridesSupport.Events = {
49 OverridesWarningUpdated: "OverridesWarningUpdated", 50 OverridesWarningUpdated: "OverridesWarningUpdated",
50 HasActiveOverridesChanged: "HasActiveOverridesChanged", 51 HasActiveOverridesChanged: "HasActiveOverridesChanged",
51 } 52 }
52 53
53 /** 54 /**
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 419
419 if (this._pageResizer) { 420 if (this._pageResizer) {
420 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged , this); 421 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged , this);
421 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this); 422 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this);
422 } 423 }
423 this._pageResizer = pageResizer; 424 this._pageResizer = pageResizer;
424 if (this._pageResizer) { 425 if (this._pageResizer) {
425 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged, t his); 426 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged, t his);
426 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this); 427 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this);
427 } 428 }
428 this._deviceMetricsChanged(); 429 if (this._initialized)
430 this._deviceMetricsChanged();
429 }, 431 },
430 432
431 /** 433 /**
432 * @param {string} deviceMetrics 434 * @param {string} deviceMetrics
433 * @param {string} userAgent 435 * @param {string} userAgent
434 */ 436 */
435 emulateDevice: function(deviceMetrics, userAgent) 437 emulateDevice: function(deviceMetrics, userAgent)
436 { 438 {
437 var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(d eviceMetrics); 439 var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(d eviceMetrics);
438 this._deviceMetricsChangedListenerMuted = true; 440 this._deviceMetricsChangedListenerMuted = true;
439 this._userAgentChangedListenerMuted = true; 441 this._userAgentChangedListenerMuted = true;
440 this.settings.userAgent.set(userAgent); 442 this.settings.userAgent.set(userAgent);
441 this.settings.overrideDeviceResolution.set(true); 443 this.settings.overrideDeviceResolution.set(true);
442 this.settings.deviceWidth.set(metrics.width); 444 this.settings.deviceWidth.set(metrics.width);
443 this.settings.deviceHeight.set(metrics.height); 445 this.settings.deviceHeight.set(metrics.height);
444 this.settings.deviceScaleFactor.set(metrics.deviceScaleFactor); 446 this.settings.deviceScaleFactor.set(metrics.deviceScaleFactor);
445 this.settings.deviceTextAutosizing.set(metrics.textAutosizing); 447 this.settings.deviceTextAutosizing.set(metrics.textAutosizing);
446 this.settings.overrideUserAgent.set(true); 448 this.settings.overrideUserAgent.set(true);
447 this.settings.emulateTouchEvents.set(true); 449 this.settings.emulateTouchEvents.set(true);
448 this.settings.emulateViewport.set(true); 450 this.settings.emulateViewport.set(true);
449 delete this._deviceMetricsChangedListenerMuted; 451 delete this._deviceMetricsChangedListenerMuted;
450 delete this._userAgentChangedListenerMuted; 452 delete this._userAgentChangedListenerMuted;
451 this._deviceMetricsChanged(); 453
452 this._userAgentChanged(); 454 if (this._initialized) {
455 this._deviceMetricsChanged();
456 this._userAgentChanged();
457 }
453 }, 458 },
454 459
455 resetEmulatedDevice: function() 460 resetEmulatedDevice: function()
456 { 461 {
457 this._deviceMetricsChangedListenerMuted = true; 462 this._deviceMetricsChangedListenerMuted = true;
458 this._userAgentChangedListenerMuted = true; 463 this._userAgentChangedListenerMuted = true;
459 this.settings.overrideDeviceResolution.set(false); 464 this.settings.overrideDeviceResolution.set(false);
460 this.settings.overrideUserAgent.set(false); 465 this.settings.overrideUserAgent.set(false);
461 this.settings.emulateTouchEvents.set(false); 466 this.settings.emulateTouchEvents.set(false);
462 this.settings.emulateViewport.set(false); 467 this.settings.emulateViewport.set(false);
463 delete this._deviceMetricsChangedListenerMuted; 468 delete this._deviceMetricsChangedListenerMuted;
464 delete this._userAgentChangedListenerMuted; 469 delete this._userAgentChangedListenerMuted;
465 this._deviceMetricsChanged(); 470
466 this._userAgentChanged(); 471 if (this._initialized) {
472 this._deviceMetricsChanged();
473 this._userAgentChanged();
474 }
467 }, 475 },
468 476
469 reset: function() 477 reset: function()
470 { 478 {
471 this.settings.overrideDeviceOrientation.set(false); 479 this.settings.overrideDeviceOrientation.set(false);
472 this.settings.overrideGeolocation.set(false); 480 this.settings.overrideGeolocation.set(false);
473 this.settings.overrideCSSMedia.set(false); 481 this.settings.overrideCSSMedia.set(false);
474 this.resetEmulatedDevice(); 482 this.resetEmulatedDevice();
475 }, 483 },
476 484
477 applyInitialOverrides: function() 485 applyInitialOverrides: function()
478 { 486 {
479 if (!this._target) { 487 if (!this._target) {
480 this._applyInitialOverridesOnTargetAdded = true; 488 this._applyInitialOverridesOnTargetAdded = true;
481 return; 489 return;
482 } 490 }
483 491
492 this._initialized = true;
493
494 this.settings.overrideUserAgent.addChangeListener(this._userAgentChanged , this);
495 this.settings.userAgent.addChangeListener(this._userAgentChanged, this);
496
497 this.settings.overrideDeviceResolution.addChangeListener(this._deviceMet ricsChanged, this);
498 this.settings.deviceWidth.addChangeListener(this._deviceMetricsChanged, this);
499 this.settings.deviceHeight.addChangeListener(this._deviceMetricsChanged, this);
500 this.settings.deviceScaleFactor.addChangeListener(this._deviceMetricsCha nged, this);
501 this.settings.deviceTextAutosizing.addChangeListener(this._deviceMetrics Changed, this);
502 this.settings.emulateViewport.addChangeListener(this._deviceMetricsChang ed, this);
503 this.settings.deviceFitWindow.addChangeListener(this._deviceMetricsChang ed, this);
504 WebInspector.settings.responsiveDesignMode.addChangeListener(this._devic eMetricsChanged, this);
505
506 this.settings.overrideGeolocation.addChangeListener(this._geolocationPos itionChanged, this);
507 this.settings.geolocationOverride.addChangeListener(this._geolocationPos itionChanged, this);
508
509 this.settings.overrideDeviceOrientation.addChangeListener(this._deviceOr ientationChanged, this);
510 this.settings.deviceOrientationOverride.addChangeListener(this._deviceOr ientationChanged, this);
511
512 this.settings.emulateTouchEvents.addChangeListener(this._emulateTouchEve ntsChanged, this);
513
514 this.settings.overrideCSSMedia.addChangeListener(this._cssMediaChanged, this);
515 this.settings.emulatedCSSMedia.addChangeListener(this._cssMediaChanged, this);
516
517 WebInspector.settings.showMetricsRulers.addChangeListener(this._showRule rsChanged, this);
518
484 if (this.settings.overrideDeviceOrientation.get()) 519 if (this.settings.overrideDeviceOrientation.get())
485 this._deviceOrientationChanged(); 520 this._deviceOrientationChanged();
486 521
487 if (this.settings.overrideGeolocation.get()) 522 if (this.settings.overrideGeolocation.get())
488 this._geolocationPositionChanged(); 523 this._geolocationPositionChanged();
489 524
490 if (this.settings.emulateTouchEvents.get()) 525 if (this.settings.emulateTouchEvents.get())
491 this._emulateTouchEventsChanged(); 526 this._emulateTouchEventsChanged();
492 527
493 if (this.settings.overrideCSSMedia.get()) 528 if (this.settings.overrideCSSMedia.get())
(...skipping 15 matching lines...) Expand all
509 var userAgent = this.settings.overrideUserAgent.get() ? this.settings.us erAgent.get() : ""; 544 var userAgent = this.settings.overrideUserAgent.get() ? this.settings.us erAgent.get() : "";
510 NetworkAgent.setUserAgentOverride(userAgent); 545 NetworkAgent.setUserAgentOverride(userAgent);
511 if (this._userAgent !== userAgent) 546 if (this._userAgent !== userAgent)
512 this._updateUserAgentWarningMessage(WebInspector.UIString("You might need to reload the page for proper user agent spoofing and viewport rendering." )); 547 this._updateUserAgentWarningMessage(WebInspector.UIString("You might need to reload the page for proper user agent spoofing and viewport rendering." ));
513 this._userAgent = userAgent; 548 this._userAgent = userAgent;
514 this.maybeHasActiveOverridesChanged(); 549 this.maybeHasActiveOverridesChanged();
515 }, 550 },
516 551
517 _onPageResizerAvailableSizeChanged: function() 552 _onPageResizerAvailableSizeChanged: function()
518 { 553 {
519 this._deviceMetricsChanged(); 554 if (this._initialized)
555 this._deviceMetricsChanged();
520 }, 556 },
521 557
522 _onPageResizerResizeRequested: function(event) 558 _onPageResizerResizeRequested: function(event)
523 { 559 {
524 var size = /** @type {!Size} */ (event.data); 560 var size = /** @type {!Size} */ (event.data);
525 if (size.width !== this.settings.deviceWidth.get()) 561 if (size.width !== this.settings.deviceWidth.get())
526 this.settings.deviceWidth.set(size.width); 562 this.settings.deviceWidth.set(size.width);
527 if (size.height !== this.settings.deviceHeight.get()) 563 if (size.height !== this.settings.deviceHeight.get())
528 this.settings.deviceHeight.set(size.height); 564 this.settings.deviceHeight.set(size.height);
529 }, 565 },
530 566
531 _deviceMetricsChanged: function() 567 _deviceMetricsChanged: function()
532 { 568 {
533 this._showRulersChanged(); 569 this._showRulersChanged();
534 570
535 if (this._deviceMetricsChangedListenerMuted) 571 if (this._deviceMetricsChangedListenerMuted)
536 return; 572 return;
537 var responsiveDesignAvailableAndDisabled = this._responsiveDesignAvailab le && !WebInspector.settings.responsiveDesignMode.get(); 573 var responsiveDesignAvailableAndDisabled = this._responsiveDesignAvailab le && (!WebInspector.settings.responsiveDesignMode.get() || !this._pageResizer);
538 var overrideDeviceResolution = this.settings.overrideDeviceResolution.ge t(); 574 var overrideDeviceResolution = this.settings.overrideDeviceResolution.ge t();
539 if (responsiveDesignAvailableAndDisabled || (!overrideDeviceResolution & & !this.settings.emulateViewport.get())) { 575 var emulationEnabled = overrideDeviceResolution || this.settings.emulate Viewport.get();
576 if (responsiveDesignAvailableAndDisabled || !emulationEnabled) {
540 PageAgent.clearDeviceMetricsOverride(apiCallback.bind(this)); 577 PageAgent.clearDeviceMetricsOverride(apiCallback.bind(this));
541 if (this._pageResizer) 578 if (this._pageResizer && !emulationEnabled)
542 this._pageResizer.update(0, 0, 0); 579 this._pageResizer.update(0, 0, 0);
543 this.maybeHasActiveOverridesChanged(); 580 this.maybeHasActiveOverridesChanged();
544 return; 581 return;
545 } 582 }
546 583
547 var dipWidth = overrideDeviceResolution ? this.settings.deviceWidth.get( ) : 0; 584 var dipWidth = overrideDeviceResolution ? this.settings.deviceWidth.get( ) : 0;
548 var dipHeight = overrideDeviceResolution ? this.settings.deviceHeight.ge t() : 0; 585 var dipHeight = overrideDeviceResolution ? this.settings.deviceHeight.ge t() : 0;
549 586
550 // Disable override without checks. 587 // Disable override without checks.
551 if (this.isInspectingDevice()) 588 if (this.isInspectingDevice())
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 (this.settings.emulateTouchEvents.get() && !this.hasTouchInputs()) | | 745 (this.settings.emulateTouchEvents.get() && !this.hasTouchInputs()) | |
709 (this.settings.overrideCSSMedia.get() && !this.isInspectingDevice()) ; 746 (this.settings.overrideCSSMedia.get() && !this.isInspectingDevice()) ;
710 if (this._hasActiveOverrides !== hasActiveOverrides) { 747 if (this._hasActiveOverrides !== hasActiveOverrides) {
711 this._hasActiveOverrides = hasActiveOverrides; 748 this._hasActiveOverrides = hasActiveOverrides;
712 this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.H asActiveOverridesChanged); 749 this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.H asActiveOverridesChanged);
713 } 750 }
714 }, 751 },
715 752
716 _onMainFrameNavigated: function() 753 _onMainFrameNavigated: function()
717 { 754 {
718 this._deviceMetricsChanged(); 755 if (this._initialized)
756 this._deviceMetricsChanged();
719 this._updateUserAgentWarningMessage(""); 757 this._updateUserAgentWarningMessage("");
720 this._updateDeviceMetricsWarningMessage(""); 758 this._updateDeviceMetricsWarningMessage("");
721 }, 759 },
722 760
723 /** 761 /**
724 * @param {string} warningMessage 762 * @param {string} warningMessage
725 */ 763 */
726 _updateDeviceMetricsWarningMessage: function(warningMessage) 764 _updateDeviceMetricsWarningMessage: function(warningMessage)
727 { 765 {
728 this._deviceMetricsWarningMessage = warningMessage; 766 this._deviceMetricsWarningMessage = warningMessage;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 this.settings.overrideGeolocation = WebInspector.settings.createSetting( "overrideGeolocation", false); 810 this.settings.overrideGeolocation = WebInspector.settings.createSetting( "overrideGeolocation", false);
773 this.settings.geolocationOverride = WebInspector.settings.createSetting( "geolocationOverride", ""); 811 this.settings.geolocationOverride = WebInspector.settings.createSetting( "geolocationOverride", "");
774 this.settings.overrideDeviceOrientation = WebInspector.settings.createSe tting("overrideDeviceOrientation", false); 812 this.settings.overrideDeviceOrientation = WebInspector.settings.createSe tting("overrideDeviceOrientation", false);
775 this.settings.deviceOrientationOverride = WebInspector.settings.createSe tting("deviceOrientationOverride", ""); 813 this.settings.deviceOrientationOverride = WebInspector.settings.createSe tting("deviceOrientationOverride", "");
776 this.settings.overrideCSSMedia = WebInspector.settings.createSetting("ov errideCSSMedia", false); 814 this.settings.overrideCSSMedia = WebInspector.settings.createSetting("ov errideCSSMedia", false);
777 this.settings.emulatedCSSMedia = WebInspector.settings.createSetting("em ulatedCSSMedia", "print"); 815 this.settings.emulatedCSSMedia = WebInspector.settings.createSetting("em ulatedCSSMedia", "print");
778 this.settings.emulatedDevice = WebInspector.settings.createSetting("emul atedDevice", "Google Nexus 5"); 816 this.settings.emulatedDevice = WebInspector.settings.createSetting("emul atedDevice", "Google Nexus 5");
779 817
780 this.maybeHasActiveOverridesChanged(); 818 this.maybeHasActiveOverridesChanged();
781 819
782 this.settings.overrideUserAgent.addChangeListener(this._userAgentChanged , this);
783 this.settings.userAgent.addChangeListener(this._userAgentChanged, this);
784
785 this.settings.overrideDeviceResolution.addChangeListener(this._deviceMet ricsChanged, this);
786 this.settings.deviceWidth.addChangeListener(this._deviceMetricsChanged, this);
787 this.settings.deviceHeight.addChangeListener(this._deviceMetricsChanged, this);
788 this.settings.deviceScaleFactor.addChangeListener(this._deviceMetricsCha nged, this);
789 this.settings.deviceTextAutosizing.addChangeListener(this._deviceMetrics Changed, this);
790 this.settings.emulateViewport.addChangeListener(this._deviceMetricsChang ed, this);
791 this.settings.deviceFitWindow.addChangeListener(this._deviceMetricsChang ed, this);
792
793 this.settings.overrideGeolocation.addChangeListener(this._geolocationPos itionChanged, this);
794 this.settings.geolocationOverride.addChangeListener(this._geolocationPos itionChanged, this);
795
796 this.settings.overrideDeviceOrientation.addChangeListener(this._deviceOr ientationChanged, this);
797 this.settings.deviceOrientationOverride.addChangeListener(this._deviceOr ientationChanged, this);
798
799 this.settings.emulateTouchEvents.addChangeListener(this._emulateTouchEve ntsChanged, this);
800
801 this.settings.overrideCSSMedia.addChangeListener(this._cssMediaChanged, this);
802 this.settings.emulatedCSSMedia.addChangeListener(this._cssMediaChanged, this);
803
804 WebInspector.settings.showMetricsRulers.addChangeListener(this._showRule rsChanged, this);
805
806 if (this._applyInitialOverridesOnTargetAdded) { 820 if (this._applyInitialOverridesOnTargetAdded) {
807 delete this._applyInitialOverridesOnTargetAdded; 821 delete this._applyInitialOverridesOnTargetAdded;
808 this.applyInitialOverrides(); 822 this.applyInitialOverrides();
809 } 823 }
810 }, 824 },
811 825
812 swapDimensions: function() 826 swapDimensions: function()
813 { 827 {
814 var width = WebInspector.overridesSupport.settings.deviceWidth.get(); 828 var width = WebInspector.overridesSupport.settings.deviceWidth.get();
815 var height = WebInspector.overridesSupport.settings.deviceHeight.get(); 829 var height = WebInspector.overridesSupport.settings.deviceHeight.get();
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 }, 945 },
932 946
933 __proto__: WebInspector.Object.prototype 947 __proto__: WebInspector.Object.prototype
934 } 948 }
935 949
936 950
937 /** 951 /**
938 * @type {!WebInspector.OverridesSupport} 952 * @type {!WebInspector.OverridesSupport}
939 */ 953 */
940 WebInspector.overridesSupport; 954 WebInspector.overridesSupport;
OLDNEW
« Source/devtools/front_end/main/Main.js ('K') | « Source/devtools/front_end/main/Main.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698