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

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