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

Side by Side Diff: Source/core/inspector/InspectorPageAgent.cpp

Issue 345723003: [DevTools] Separate text autosizing from device metrics override. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: compile fix Created 6 years, 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 static const char pageAgentScriptsToEvaluateOnLoad[] = "pageAgentScriptsToEvalua teOnLoad"; 89 static const char pageAgentScriptsToEvaluateOnLoad[] = "pageAgentScriptsToEvalua teOnLoad";
90 static const char deviceMetricsOverrideEnabled[] = "deviceMetricsOverrideEnabled "; 90 static const char deviceMetricsOverrideEnabled[] = "deviceMetricsOverrideEnabled ";
91 static const char pageAgentScreenWidthOverride[] = "pageAgentScreenWidthOverride "; 91 static const char pageAgentScreenWidthOverride[] = "pageAgentScreenWidthOverride ";
92 static const char pageAgentScreenHeightOverride[] = "pageAgentScreenHeightOverri de"; 92 static const char pageAgentScreenHeightOverride[] = "pageAgentScreenHeightOverri de";
93 static const char pageAgentDeviceScaleFactorOverride[] = "pageAgentDeviceScaleFa ctorOverride"; 93 static const char pageAgentDeviceScaleFactorOverride[] = "pageAgentDeviceScaleFa ctorOverride";
94 static const char pageAgentEmulateViewport[] = "pageAgentEmulateViewport"; 94 static const char pageAgentEmulateViewport[] = "pageAgentEmulateViewport";
95 static const char pageAgentFitWindow[] = "pageAgentFitWindow"; 95 static const char pageAgentFitWindow[] = "pageAgentFitWindow";
96 static const char deviceScale[] = "deviceScale"; 96 static const char deviceScale[] = "deviceScale";
97 static const char deviceOffsetX[] = "deviceOffsetX"; 97 static const char deviceOffsetX[] = "deviceOffsetX";
98 static const char deviceOffsetY[] = "deviceOffsetY"; 98 static const char deviceOffsetY[] = "deviceOffsetY";
99 static const char fontScaleFactor[] = "fontScaleFactor";
100 static const char pageAgentShowFPSCounter[] = "pageAgentShowFPSCounter"; 99 static const char pageAgentShowFPSCounter[] = "pageAgentShowFPSCounter";
101 static const char pageAgentTextAutosizingOverride[] = "pageAgentTextAutosizingOv erride";
102 static const char pageAgentContinuousPaintingEnabled[] = "pageAgentContinuousPai ntingEnabled"; 100 static const char pageAgentContinuousPaintingEnabled[] = "pageAgentContinuousPai ntingEnabled";
103 static const char pageAgentShowPaintRects[] = "pageAgentShowPaintRects"; 101 static const char pageAgentShowPaintRects[] = "pageAgentShowPaintRects";
104 static const char pageAgentShowDebugBorders[] = "pageAgentShowDebugBorders"; 102 static const char pageAgentShowDebugBorders[] = "pageAgentShowDebugBorders";
105 static const char pageAgentShowScrollBottleneckRects[] = "pageAgentShowScrollBot tleneckRects"; 103 static const char pageAgentShowScrollBottleneckRects[] = "pageAgentShowScrollBot tleneckRects";
106 static const char touchEventEmulationEnabled[] = "touchEventEmulationEnabled"; 104 static const char touchEventEmulationEnabled[] = "touchEventEmulationEnabled";
107 static const char pageAgentEmulatedMedia[] = "pageAgentEmulatedMedia"; 105 static const char pageAgentEmulatedMedia[] = "pageAgentEmulatedMedia";
108 static const char showSizeOnResize[] = "showSizeOnResize"; 106 static const char showSizeOnResize[] = "showSizeOnResize";
109 static const char showGridOnResize[] = "showGridOnResize"; 107 static const char showGridOnResize[] = "showGridOnResize";
110 } 108 }
111 109
112 namespace { 110 namespace {
113 111
114 KURL urlWithoutFragment(const KURL& url) 112 KURL urlWithoutFragment(const KURL& url)
115 { 113 {
116 KURL result = url; 114 KURL result = url;
117 result.removeFragmentIdentifier(); 115 result.removeFragmentIdentifier();
118 return result; 116 return result;
119 } 117 }
120 118
119 static float calculateFontScaleFactor(int width, int height, float deviceScaleFa ctor)
120 {
121 // Chromium on Android uses a device scale adjustment for fonts used in text autosizing for
122 // improved legibility. This function computes this adjusted value for text autosizing.
123 // For a description of the Android device scale adjustment algorithm, see:
124 // chrome/browser/chrome_content_browser_client.cc, GetDeviceScaleAdjustment (...)
125 if (!width || !height || !deviceScaleFactor)
126 return 1;
127
128 static const float kMinFSM = 1.05f;
129 static const int kWidthForMinFSM = 320;
130 static const float kMaxFSM = 1.3f;
131 static const int kWidthForMaxFSM = 800;
132
133 float minWidth = std::min(width, height) / deviceScaleFactor;
134 if (minWidth <= kWidthForMinFSM)
135 return kMinFSM;
136 if (minWidth >= kWidthForMaxFSM)
137 return kMaxFSM;
138
139 // The font scale multiplier varies linearly between kMinFSM and kMaxFSM.
140 float ratio = static_cast<float>(minWidth - kWidthForMinFSM) / (kWidthForMax FSM - kWidthForMinFSM);
141 return ratio * (kMaxFSM - kMinFSM) + kMinFSM;
142 }
143
121 } 144 }
122 145
123 class InspectorPageAgent::GetResourceContentLoadListener FINAL : public VoidCall back { 146 class InspectorPageAgent::GetResourceContentLoadListener FINAL : public VoidCall back {
124 public: 147 public:
125 GetResourceContentLoadListener(InspectorPageAgent*, const String& frameId, c onst String& url, PassRefPtr<GetResourceContentCallback>); 148 GetResourceContentLoadListener(InspectorPageAgent*, const String& frameId, c onst String& url, PassRefPtr<GetResourceContentCallback>);
126 virtual void handleEvent() OVERRIDE; 149 virtual void handleEvent() OVERRIDE;
127 private: 150 private:
128 InspectorPageAgent* m_pageAgent; 151 InspectorPageAgent* m_pageAgent;
129 String m_frameId; 152 String m_frameId;
130 String m_url; 153 String m_url;
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 , m_originalDeviceSupportsMouse(false) 407 , m_originalDeviceSupportsMouse(false)
385 , m_originalDeviceSupportsTouch(false) 408 , m_originalDeviceSupportsTouch(false)
386 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled() ) 409 , m_embedderTextAutosizingEnabled(m_page->settings().textAutosizingEnabled() )
387 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment()) 410 , m_embedderFontScaleFactor(m_page->settings().deviceScaleAdjustment())
388 { 411 {
389 } 412 }
390 413
391 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled) 414 void InspectorPageAgent::setTextAutosizingEnabled(bool enabled)
392 { 415 {
393 m_embedderTextAutosizingEnabled = enabled; 416 m_embedderTextAutosizingEnabled = enabled;
394 if (!m_deviceMetricsOverridden) 417 bool emulateViewportEnabled = m_enabled && m_deviceMetricsOverridden && m_em ulateViewportEnabled;
418 if (!emulateViewportEnabled)
395 m_page->settings().setTextAutosizingEnabled(enabled); 419 m_page->settings().setTextAutosizingEnabled(enabled);
396 } 420 }
397 421
398 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment) 422 void InspectorPageAgent::setDeviceScaleAdjustment(float deviceScaleAdjustment)
399 { 423 {
400 m_embedderFontScaleFactor = deviceScaleAdjustment; 424 m_embedderFontScaleFactor = deviceScaleAdjustment;
401 if (!m_deviceMetricsOverridden) 425 bool emulateViewportEnabled = m_enabled && m_deviceMetricsOverridden && m_em ulateViewportEnabled;
426 if (!emulateViewportEnabled)
402 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment); 427 m_page->settings().setDeviceScaleAdjustment(deviceScaleAdjustment);
403 } 428 }
404 429
405 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend) 430 void InspectorPageAgent::setFrontend(InspectorFrontend* frontend)
406 { 431 {
407 m_frontend = frontend->page(); 432 m_frontend = frontend->page();
408 } 433 }
409 434
410 void InspectorPageAgent::clearFrontend() 435 void InspectorPageAgent::clearFrontend()
411 { 436 {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 if (m_state->getBoolean(PageAgentState::pageAgentContinuousPaintingEnabled)) 489 if (m_state->getBoolean(PageAgentState::pageAgentContinuousPaintingEnabled))
465 setContinuousPaintingEnabled(0, false); 490 setContinuousPaintingEnabled(0, false);
466 setShowScrollBottleneckRects(0, false); 491 setShowScrollBottleneckRects(0, false);
467 setShowViewportSizeOnResize(0, false, 0); 492 setShowViewportSizeOnResize(0, false, 0);
468 493
469 if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled)) { 494 if (m_state->getBoolean(PageAgentState::touchEventEmulationEnabled)) {
470 updateTouchEventEmulationInPage(false); 495 updateTouchEventEmulationInPage(false);
471 m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, false); 496 m_state->setBoolean(PageAgentState::touchEventEmulationEnabled, false);
472 } 497 }
473 498
474 if (!deviceMetricsChanged(false, 0, 0, 0, false, false, 1, 0, 0, 1, false)) 499 if (!deviceMetricsChanged(false, 0, 0, 0, false, false, 1, 0, 0))
475 return; 500 return;
476 501
477 // When disabling the agent, reset the override values if necessary. 502 // When disabling the agent, reset the override values if necessary.
478 updateViewMetrics(false, 0, 0, 0, false, false, 1, 0, 0, m_embedderFontScale Factor, m_embedderTextAutosizingEnabled); 503 updateViewMetrics(false, 0, 0, 0, false, false, 1, 0, 0);
479 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, 0); 504 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, 0);
480 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, 0); 505 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, 0);
481 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 0); 506 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, 0);
482 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, false); 507 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, false);
483 m_state->setBoolean(PageAgentState::pageAgentFitWindow, false); 508 m_state->setBoolean(PageAgentState::pageAgentFitWindow, false);
484 m_state->setDouble(PageAgentState::deviceScale, 1); 509 m_state->setDouble(PageAgentState::deviceScale, 1);
485 m_state->setDouble(PageAgentState::deviceOffsetX, 0); 510 m_state->setDouble(PageAgentState::deviceOffsetX, 0);
486 m_state->setDouble(PageAgentState::deviceOffsetY, 0); 511 m_state->setDouble(PageAgentState::deviceOffsetY, 0);
487 m_state->setDouble(PageAgentState::fontScaleFactor, 1);
488 m_state->setBoolean(PageAgentState::pageAgentTextAutosizingOverride, false);
489 } 512 }
490 513
491 void InspectorPageAgent::addScriptToEvaluateOnLoad(ErrorString*, const String& s ource, String* identifier) 514 void InspectorPageAgent::addScriptToEvaluateOnLoad(ErrorString*, const String& s ource, String* identifier)
492 { 515 {
493 RefPtr<JSONObject> scripts = m_state->getObject(PageAgentState::pageAgentScr iptsToEvaluateOnLoad); 516 RefPtr<JSONObject> scripts = m_state->getObject(PageAgentState::pageAgentScr iptsToEvaluateOnLoad);
494 if (!scripts) { 517 if (!scripts) {
495 scripts = JSONObject::create(); 518 scripts = JSONObject::create();
496 m_state->setObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad, scr ipts); 519 m_state->setObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad, scr ipts);
497 } 520 }
498 // Assure we don't override existing ids -- m_lastScriptIdentifier could get out of sync WRT actual 521 // Assure we don't override existing ids -- m_lastScriptIdentifier could get out of sync WRT actual
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 return; 766 return;
744 767
745 Document* document = frame->document(); 768 Document* document = frame->document();
746 if (!document) { 769 if (!document) {
747 *errorString = "No Document instance to set HTML for"; 770 *errorString = "No Document instance to set HTML for";
748 return; 771 return;
749 } 772 }
750 DOMPatchSupport::patchDocument(*document, html); 773 DOMPatchSupport::patchDocument(*document, html);
751 } 774 }
752 775
753 void InspectorPageAgent::setDeviceMetricsOverride(ErrorString* errorString, int width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindo w, const double* optionalScale, const double* optionalOffsetX, const double* opt ionalOffsetY, const bool* optionalTextAutosizing, const double* optionalFontScal eFactor) 776 void InspectorPageAgent::setDeviceMetricsOverride(ErrorString* errorString, int width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindo w, const double* optionalScale, const double* optionalOffsetX, const double* opt ionalOffsetY)
754 { 777 {
755 const static long maxDimension = 10000000; 778 const static long maxDimension = 10000000;
756 const static double maxScale = 10; 779 const static double maxScale = 10;
757 780
758 double scale = optionalScale ? *optionalScale : 1; 781 double scale = optionalScale ? *optionalScale : 1;
759 double offsetX = optionalOffsetX ? *optionalOffsetX : 0; 782 double offsetX = optionalOffsetX ? *optionalOffsetX : 0;
760 double offsetY = optionalOffsetY ? *optionalOffsetY : 0; 783 double offsetY = optionalOffsetY ? *optionalOffsetY : 0;
761 bool textAutosizing = optionalTextAutosizing ? *optionalTextAutosizing : fal se;
762 double fontScaleFactor = optionalFontScaleFactor ? *optionalFontScaleFactor : 1;
763 784
764 if (width < 0 || height < 0 || width > maxDimension || height > maxDimension ) { 785 if (width < 0 || height < 0 || width > maxDimension || height > maxDimension ) {
765 *errorString = "Width and height values must be positive, not greater th an " + String::number(maxDimension); 786 *errorString = "Width and height values must be positive, not greater th an " + String::number(maxDimension);
766 return; 787 return;
767 } 788 }
768 789
769 if (deviceScaleFactor < 0) { 790 if (deviceScaleFactor < 0) {
770 *errorString = "deviceScaleFactor must be non-negative"; 791 *errorString = "deviceScaleFactor must be non-negative";
771 return; 792 return;
772 } 793 }
773 794
774 if (scale <= 0 || scale > maxScale) { 795 if (scale <= 0 || scale > maxScale) {
775 *errorString = "scale must be positive, not greater than " + String::num ber(maxScale); 796 *errorString = "scale must be positive, not greater than " + String::num ber(maxScale);
776 return; 797 return;
777 } 798 }
778 799
779 if (fontScaleFactor <= 0) {
780 *errorString = "fontScaleFactor must be positive";
781 return;
782 }
783
784 Settings& settings = m_page->settings(); 800 Settings& settings = m_page->settings();
785 if (!settings.acceleratedCompositingEnabled()) { 801 if (!settings.acceleratedCompositingEnabled()) {
786 if (errorString) 802 if (errorString)
787 *errorString = "Compositing mode is not supported"; 803 *errorString = "Compositing mode is not supported";
788 return; 804 return;
789 } 805 }
790 806
791 if (!deviceMetricsChanged(true, width, height, deviceScaleFactor, emulateVie wport, fitWindow, scale, offsetX, offsetY, fontScaleFactor, textAutosizing)) 807 if (!deviceMetricsChanged(true, width, height, deviceScaleFactor, emulateVie wport, fitWindow, scale, offsetX, offsetY))
792 return; 808 return;
793 809
794 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, true); 810 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, true);
795 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, width); 811 m_state->setLong(PageAgentState::pageAgentScreenWidthOverride, width);
796 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, height); 812 m_state->setLong(PageAgentState::pageAgentScreenHeightOverride, height);
797 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, devic eScaleFactor); 813 m_state->setDouble(PageAgentState::pageAgentDeviceScaleFactorOverride, devic eScaleFactor);
798 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, emulateViewpor t); 814 m_state->setBoolean(PageAgentState::pageAgentEmulateViewport, emulateViewpor t);
799 m_state->setBoolean(PageAgentState::pageAgentFitWindow, fitWindow); 815 m_state->setBoolean(PageAgentState::pageAgentFitWindow, fitWindow);
800 m_state->setDouble(PageAgentState::deviceScale, scale); 816 m_state->setDouble(PageAgentState::deviceScale, scale);
801 m_state->setDouble(PageAgentState::deviceOffsetX, offsetX); 817 m_state->setDouble(PageAgentState::deviceOffsetX, offsetX);
802 m_state->setDouble(PageAgentState::deviceOffsetY, offsetY); 818 m_state->setDouble(PageAgentState::deviceOffsetY, offsetY);
803 m_state->setDouble(PageAgentState::fontScaleFactor, fontScaleFactor);
804 m_state->setBoolean(PageAgentState::pageAgentTextAutosizingOverride, textAut osizing);
805 updateViewMetricsFromState(); 819 updateViewMetricsFromState();
806 } 820 }
807 821
808 void InspectorPageAgent::clearDeviceMetricsOverride(ErrorString*) 822 void InspectorPageAgent::clearDeviceMetricsOverride(ErrorString*)
809 { 823 {
810 if (m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnabled)) { 824 if (m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnabled)) {
811 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, false) ; 825 m_state->setBoolean(PageAgentState::deviceMetricsOverrideEnabled, false) ;
812 updateViewMetricsFromState(); 826 updateViewMetricsFromState();
813 } 827 }
814 } 828 }
815 829
816 bool InspectorPageAgent::deviceMetricsChanged(bool enabled, int width, int heigh t, double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale, double offsetX, double offsetY, double fontScaleFactor, bool textAutosizing) 830 bool InspectorPageAgent::deviceMetricsChanged(bool enabled, int width, int heigh t, double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale, double offsetX, double offsetY)
817 { 831 {
818 bool currentEnabled = m_state->getBoolean(PageAgentState::deviceMetricsOverr ideEnabled); 832 bool currentEnabled = m_state->getBoolean(PageAgentState::deviceMetricsOverr ideEnabled);
819 // These two always fit an int. 833 // These two always fit an int.
820 int currentWidth = static_cast<int>(m_state->getLong(PageAgentState::pageAge ntScreenWidthOverride)); 834 int currentWidth = static_cast<int>(m_state->getLong(PageAgentState::pageAge ntScreenWidthOverride));
821 int currentHeight = static_cast<int>(m_state->getLong(PageAgentState::pageAg entScreenHeightOverride)); 835 int currentHeight = static_cast<int>(m_state->getLong(PageAgentState::pageAg entScreenHeightOverride));
822 double currentDeviceScaleFactor = m_state->getDouble(PageAgentState::pageAge ntDeviceScaleFactorOverride, 0); 836 double currentDeviceScaleFactor = m_state->getDouble(PageAgentState::pageAge ntDeviceScaleFactorOverride, 0);
823 bool currentEmulateViewport = m_state->getBoolean(PageAgentState::pageAgentE mulateViewport); 837 bool currentEmulateViewport = m_state->getBoolean(PageAgentState::pageAgentE mulateViewport);
824 bool currentFitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWind ow); 838 bool currentFitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWind ow);
825 double currentScale = m_state->getDouble(PageAgentState::deviceScale, 1); 839 double currentScale = m_state->getDouble(PageAgentState::deviceScale, 1);
826 double currentOffsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0) ; 840 double currentOffsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0) ;
827 double currentOffsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0) ; 841 double currentOffsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0) ;
828 double currentFontScaleFactor = m_state->getDouble(PageAgentState::fontScale Factor, 1);
829 bool currentTextAutosizing = m_state->getBoolean(PageAgentState::pageAgentTe xtAutosizingOverride);
830 842
831 return enabled != currentEnabled 843 return enabled != currentEnabled
832 || width != currentWidth 844 || width != currentWidth
833 || height != currentHeight 845 || height != currentHeight
834 || deviceScaleFactor != currentDeviceScaleFactor 846 || deviceScaleFactor != currentDeviceScaleFactor
835 || emulateViewport != currentEmulateViewport 847 || emulateViewport != currentEmulateViewport
836 || fitWindow != currentFitWindow 848 || fitWindow != currentFitWindow
837 || scale != currentScale 849 || scale != currentScale
838 || offsetX != currentOffsetX 850 || offsetX != currentOffsetX
839 || offsetY != currentOffsetY 851 || offsetY != currentOffsetY;
840 || fontScaleFactor != currentFontScaleFactor
841 || textAutosizing != currentTextAutosizing;
842 } 852 }
843 853
844 void InspectorPageAgent::setShowPaintRects(ErrorString*, bool show) 854 void InspectorPageAgent::setShowPaintRects(ErrorString*, bool show)
845 { 855 {
846 m_state->setBoolean(PageAgentState::pageAgentShowPaintRects, show); 856 m_state->setBoolean(PageAgentState::pageAgentShowPaintRects, show);
847 m_client->setShowPaintRects(show); 857 m_client->setShowPaintRects(show);
848 858
849 if (!show && mainFrame() && mainFrame()->view()) 859 if (!show && mainFrame() && mainFrame()->view())
850 mainFrame()->view()->invalidate(); 860 mainFrame()->view()->invalidate();
851 } 861 }
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
1243 { 1253 {
1244 bool enabled = m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnab led); 1254 bool enabled = m_state->getBoolean(PageAgentState::deviceMetricsOverrideEnab led);
1245 int width = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScree nWidthOverride)); 1255 int width = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScree nWidthOverride));
1246 int height = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScre enHeightOverride)); 1256 int height = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScre enHeightOverride));
1247 bool emulateViewport = m_state->getBoolean(PageAgentState::pageAgentEmulateV iewport); 1257 bool emulateViewport = m_state->getBoolean(PageAgentState::pageAgentEmulateV iewport);
1248 double deviceScaleFactor = m_state->getDouble(PageAgentState::pageAgentDevic eScaleFactorOverride); 1258 double deviceScaleFactor = m_state->getDouble(PageAgentState::pageAgentDevic eScaleFactorOverride);
1249 bool fitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWindow); 1259 bool fitWindow = m_state->getBoolean(PageAgentState::pageAgentFitWindow);
1250 double scale = m_state->getDouble(PageAgentState::deviceScale, 1); 1260 double scale = m_state->getDouble(PageAgentState::deviceScale, 1);
1251 double offsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0); 1261 double offsetX = m_state->getDouble(PageAgentState::deviceOffsetX, 0);
1252 double offsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0); 1262 double offsetY = m_state->getDouble(PageAgentState::deviceOffsetY, 0);
1253 double fontScaleFactor = m_state->getDouble(PageAgentState::fontScaleFactor) ; 1263 updateViewMetrics(enabled, width, height, deviceScaleFactor, emulateViewport , fitWindow, scale, offsetX, offsetY);
1254 bool textAutosizingEnabled = m_state->getBoolean(PageAgentState::pageAgentTe xtAutosizingOverride);
1255 updateViewMetrics(enabled, width, height, deviceScaleFactor, emulateViewport , fitWindow, scale, offsetX, offsetY, fontScaleFactor, textAutosizingEnabled);
1256 } 1264 }
1257 1265
1258 void InspectorPageAgent::updateViewMetrics(bool enabled, int width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale, do uble offsetX, double offsetY, double fontScaleFactor, bool textAutosizingEnabled ) 1266 void InspectorPageAgent::updateViewMetrics(bool enabled, int width, int height, double deviceScaleFactor, bool emulateViewport, bool fitWindow, double scale, do uble offsetX, double offsetY)
1259 { 1267 {
1260 if (enabled && !m_page->settings().acceleratedCompositingEnabled()) 1268 if (enabled && !m_page->settings().acceleratedCompositingEnabled())
1261 return; 1269 return;
1262 1270
1263 m_deviceMetricsOverridden = enabled; 1271 m_deviceMetricsOverridden = enabled;
1264 m_emulateViewportEnabled = emulateViewport; 1272 m_emulateViewportEnabled = emulateViewport;
1265 if (enabled) 1273 if (enabled)
1266 m_client->setDeviceMetricsOverride(width, height, static_cast<float>(dev iceScaleFactor), emulateViewport, fitWindow, static_cast<float>(scale), static_c ast<float>(offsetX), static_cast<float>(offsetY)); 1274 m_client->setDeviceMetricsOverride(width, height, static_cast<float>(dev iceScaleFactor), emulateViewport, fitWindow, static_cast<float>(scale), static_c ast<float>(offsetX), static_cast<float>(offsetY));
1267 else 1275 else
1268 m_client->clearDeviceMetricsOverride(); 1276 m_client->clearDeviceMetricsOverride();
1269 1277
1270 Document* document = mainFrame()->document(); 1278 Document* document = mainFrame()->document();
1271 if (document) { 1279 if (document) {
1272 document->styleResolverChanged(); 1280 document->styleResolverChanged();
1273 document->mediaQueryAffectingValueChanged(); 1281 document->mediaQueryAffectingValueChanged();
1274 } 1282 }
1275 InspectorInstrumentation::mediaQueryResultChanged(document); 1283 InspectorInstrumentation::mediaQueryResultChanged(document);
1276 1284
1277 if (m_deviceMetricsOverridden) { 1285 if (m_deviceMetricsOverridden) {
1278 m_page->settings().setTextAutosizingEnabled(textAutosizingEnabled); 1286 m_page->settings().setTextAutosizingEnabled(emulateViewport);
1279 m_page->settings().setDeviceScaleAdjustment(fontScaleFactor); 1287 m_page->settings().setDeviceScaleAdjustment(calculateFontScaleFactor(wid th, height, static_cast<float>(deviceScaleFactor)));
1280 } else { 1288 } else {
1281 m_page->settings().setTextAutosizingEnabled(m_embedderTextAutosizingEnab led); 1289 m_page->settings().setTextAutosizingEnabled(m_embedderTextAutosizingEnab led);
1282 m_page->settings().setDeviceScaleAdjustment(m_embedderFontScaleFactor); 1290 m_page->settings().setDeviceScaleAdjustment(m_embedderFontScaleFactor);
1283 } 1291 }
1284 1292
1285 // FIXME: allow metrics override, fps counter and continuous painting at the same time: crbug.com/299837. 1293 // FIXME: allow metrics override, fps counter and continuous painting at the same time: crbug.com/299837.
1286 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho wFPSCounter) && !m_deviceMetricsOverridden); 1294 m_client->setShowFPSCounter(m_state->getBoolean(PageAgentState::pageAgentSho wFPSCounter) && !m_deviceMetricsOverridden);
1287 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden); 1295 m_client->setContinuousPaintingEnabled(m_state->getBoolean(PageAgentState::p ageAgentContinuousPaintingEnabled) && !m_deviceMetricsOverridden);
1288 } 1296 }
1289 1297
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1390 bool InspectorPageAgent::getEditedResourceContent(const String& url, String* con tent) 1398 bool InspectorPageAgent::getEditedResourceContent(const String& url, String* con tent)
1391 { 1399 {
1392 if (!m_editedResourceContent.contains(url)) 1400 if (!m_editedResourceContent.contains(url))
1393 return false; 1401 return false;
1394 *content = m_editedResourceContent.get(url); 1402 *content = m_editedResourceContent.get(url);
1395 return true; 1403 return true;
1396 } 1404 }
1397 1405
1398 } // namespace WebCore 1406 } // namespace WebCore
1399 1407
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorPageAgent.h ('k') | Source/devtools/front_end/elements/OverridesView.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698